【发布时间】:2012-10-26 11:42:35
【问题描述】:
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);
}
});
UPDATE: Uncaught TypeError: Object function (){return a.apply(c,e.concat(k.call(arguments)))} has no method 'process'
如果我只输入“A”,那么 typeahead 只会显示每个结果的第一个字母(一堆 A 字母)。如果我输入第二个字母,我就什么也看不见了。
我已经在数据上尝试过 JSON.parse 或使用 data.options 但没有运气。
我做错了什么?
【问题讨论】:
-
您实际上是在尝试将 typeahead 转换为允许远程数据源吗?
-
好的,看看我的回答——我相信我的代码应该能帮到你。
标签: javascript twitter-bootstrap