0
今、私はJSONを使ってAJAX関数に複数の配列を渡して、検索候補に表示させようとしています。しかし、私はそれを渡そうとするたびに、JSONは私のデータを解析して、キーワード/検索用語がJSONのアレーの前に現れるようにして、解析が常に失敗するようにします。このキーワードを削除するにはどうすればよいですか? 変数が1つしか送られなかった場合、解析が成功したので、配列をどのように渡したかに問題があると仮定しましたが、理由を特定できませんでした。私はCodeigniterを使用しています。PHPからAJAXとJQueryへの複数の配列の受け渡しJSONを使ったオートコンプリート
ありがとうございます。
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