PHP、JSON エンコードされた配列を返します
$this->load->model('car_model', 'cars');
$result = $this->cars->searchBrand($this->input->post('query'));
$this->output->set_status_header(200);
$this->output->set_header('Content-type: application/json');
$output = array();
foreach($result as $r)
$output['options'][$r->brandID] = $r->brandName;
print json_encode($output);
出力:{"options":{"9":"Audi","10":"Austin","11":"Austin Healey"}}
JS が更新されました:
$(".searchcarBrands").typeahead({
source: function(query, typeahead) {
$.ajax({
url: site_url + '/cars/search_brand/'+query,
success: function(data) {
typeahead.process(data);
},
dataType: "json"
});
},
onselect: function(item) {
$("#someID").val(item.id);
}
});
更新: キャッチされていない TypeError: オブジェクト関数 (){return a.apply(c,e.concat(k.call(arguments)))} にはメソッド 'process' がありません
「A」だけを入力すると、先行入力は各結果の最初の文字 (A 文字の束) のみを表示します。2 番目の文字を入力すると、何も表示されなくなります。
データを試しJSON.parse
たり、data.options を使用したりしましたが、うまくいきませんでした。
私は何を間違っていますか?