[英]Passing multiple arrays from PHP to AJAX and JQuery Autocomplete with JSON
现在,我正在尝试使用JSON将多个数组传递给我的AJAX函数,以便它将显示在搜索建议中。 但是,无论何时我尝试传递它,JSON都会始终解析我的数据,以便关键字/搜索词会在JSON出现之前显示出来,因此解析始终会失败。 如何删除该关键字? 如果仅发送了一个变量,则解析成功,因此我认为问题出在如何传递数组上,但我不知道为什么。 我正在使用Codeigniter。
感谢您的时间。
HTML:
<input type="text" id="searchterm" name="searchterm">
PHP(控制器):
function search_produkTindakan(){
if (isset($_GET['searchterm'])) {
$cari=$this->input->get('searchterm');
}
$tindakan = array();
$nama_jns_barang = array();
$tindakan = $this->billing_m_pasien->pencariandata_tindakan($cari);
$nama_jns_barang= $this->billing_m_pasien->pencariandata_produk($cari);
echo json_encode(array('tindakan'=>$tindakan, 'nama_jns_barang'=>$nama_jns_barang));
}
PHP(模型):
function pencariandata_tindakan($cari='')
{
$query = $this->db->query("SELECT tindakan, kategori FROM daftar_tindakan WHERE tindakan LIKE '%$cari%' OR kategori LIKE '%$cari%' " );
if ($query->num_rows() > 0) {
$muatData = $query->row();
$data = array();
// $data['tindakan'] = $muatData->tindakan;
$query = $query->result_array();
if( is_array($query) && count ($query) > 0 ){
$n = 0;
foreach ($query as $row )
{
$data['tindakan'.'['.$n.']'] = $row['tindakan'];
$n++;
}
}
asort($data);
return $data;
}
else {
echo $cari;
// return false;
}
}
使用Javascript:
var caridata=$("#searchterm").val();
$("#searchterm").autocomplete({
source: function( request, response ) {
$.ajax({
url:"<?php echo site_url('bla');?>",
type:"GET",
data:"searchterm="+searchterm,
dataType : 'json',
cache:false,
success: function( data ) {
var tindakan = data[0];
var nama_jns_barang = data[1];
if(data!=null) {
if (tindakan!=null) {
response(tindakan);
}
else if (nama_jns_barang!=null) {
response(nama_jns_barang);
}
}
else {
//
}
}, // end of success
error: function(jqXHR, textStatus, errorThrown) {
alert(errorThrown);
} //end of error
}) // end of ajax
}, // end of source
minLength: 2,
select: function( event, ui ) {
$("#caridata").val(ui.item.id);
} // end of select
}); // end of autocomplete
我还没有弄清楚如何传递多个数组,所以现在我只是将控制器中的搜索功能分组为一个函数,并将数据加载到一个数组中。 它暂时起到了作用,但我仍在寻找答案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.