1
加載我refered http://maxoffsky.com/code-blog/laravel-shop-tutorial-3-implementing-smart-search/在我laravel應用程序中實現搜索功能Selectize下拉不是從數據庫
當我使用遠程的JavaScript代碼示例從http://brianreavis.github.io/selectize.js/它的工作原理完全fine.But當我使用它從我自己的加載數據控制器方法,它不填充選擇菜單中的項目。
這是我的控制器方法
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
});
});
初始化我selectize我無法弄清楚我是錯過了什麼
我試着檢查了兩個答案,我只是在成功添加了一個提示:function(res){}上面,我發現使用它與我的代碼不會產生任何json響應 –
那麼也許可以替換你的Return :: json使用dd($ data)調用進行調用,這將只打印出$ data的內容;確保您的數據本身正在正確構建。 – John
同樣在你的控制器函數開始時,你正在返回一個空白數組,也許這就是發生了什麼。也許你應該檢查一下這個陳述不是問題。也許你只是想說如果($ query!=「」)..我也看不到通過e()函數傳遞輸入的要點。 – John