【发布时间】:2017-11-09 20:00:27
【问题描述】:
现在我正在尝试使用 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
【问题讨论】:
标签: php json ajax autocomplete