【发布时间】:2019-01-02 12:27:24
【问题描述】:
我正在使用Selectize.js 作为标签,它来自 DB 通过 ajax 获取请求。
在我的控制器中:
$tags = Tag::where('name', 'like', '%' . $request->get('query'))->pluck('name', 'id');
$prep_tags = [];
foreach ($tags as $key => $value) {
$prep_tags['name'] = $value;
}
return response()->json([
'name' => $prep_tags
]);
Ajax 成功:
success: function(res) {
console.log(res.name);
callback(res.name);
}
在正确搜索时,Console.log(res.name) 显示:
{name: "Jeep"}
Selectize.js JS 代码:
$("#new-addTag-selectize").selectize({
valueField: 'name',
labelField: 'name',
searchField: ['name'],
plugins: ['remove_button'],
persist: false,
createOnBlur: true,
create: true,
load: function(query, callback) {
$.ajax({
url: '/get/tags/',
data: { query: query},
dataType: "json",
type: 'GET',
error: function() {
callback();
},
success: function(res) {
callback(res.name);
}
})
}
});
但自动完成功能不起作用。 我错过了什么?
【问题讨论】:
-
您也可以显示您的选择代码吗?我还看到的一件事是,在您的
foreach中,您在每次迭代中都覆盖了“名称”键。那是你真正想做的吗? -
@codisfy 问题更新,添加 js 代码,另外我希望结果显示在自动完成中,我不太确定 foreach。
-
这个
callback是在哪里定义的? -
@codisfy 在 ajax 成功。
callback(res.name) -
哦错过了.. 你可以尝试只发送
res到回调吗?而不是 res.name
标签: javascript jquery laravel select selectize.js