【发布时间】:2014-05-05 02:13:50
【问题描述】:
我参考了http://maxoffsky.com/code-blog/laravel-shop-tutorial-3-implementing-smart-search/ 在我的 laravel 应用程序中实现搜索功能
当我使用来自http://brianreavis.github.io/selectize.js/ 的远程源的 javascript 示例代码时,它工作得非常好。但是当我使用它从我自己的控制器方法加载数据时,它不会填充选择菜单中的项目。
这是我的控制器方法
public function index(){
$query = e(Input::get('q',''));
if(!$query && $query == '') return Response::json(array(), 400);
$products = User::where('firstname','like','%'.$query.'%')
->orderBy('firstname','asc')
->take(5)
->get(array('talent','firstname','profilepic','username'))->toArray();
$categories = User::where('talent','like','%'.$query.'%')
->take(5)
->get(array('talent', 'firstname','username'))
->toArray();
// Merge all data into one array
$data = array_merge($products, $categories);
return Response::json(array(
'data'=>$data
));
}
我已经使用以下代码初始化了我的选择
$(document).ready(function(){
$('#searchbox').selectize({
valueField: 'name',
labelField: 'firstname',
searchField: 'firstname',
options: [],
render: {
option: function(item, escape) {
return '<div>hello</div>';
}
},
load: function(query, callback) {
if (!query.length) return callback();
$.ajax({
url: root + '/search',
type: 'GET',
dataType: 'json',
data: {
q: query
},
error: function() {
callback();
},
success: function(res) {
callback(res.data);
}
});
},
onChange: function(){
window.location = this.items[0];
}
create: false
});
});
我无法弄清楚我错过了什么
【问题讨论】:
标签: php ajax laravel selectize.js