gpt4 book ai didi

javascript - Laravel selectize.js 结果未显示

转载 作者:行者123 更新时间:2023-12-03 01:26:25 24 4
gpt4 key购买 nike

我正在使用Selectize.js对于标签,它是通过 ajax get 请求来自数据库的。

在我的 Controller 中:

$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) 显示:

{名称:“吉普车”}

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);
}
})
}
});

但是自动完成功能不起作用。我缺少什么?

最佳答案

假设除了上面的代码之外的所有东西都在这里工作,你的 PHP 代码应该是:

$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($prep_tags);

这是使 $prep_tags 的形式为:

    $prep_tags = [
['name' => 'value1'],
['name' => 'value2']
];

那么你的 JS 成功应该是:

success: function(res) {
callback(res);
}

假设当您 console.log(res) 时,您会看到 [{"name":"value1"}, {"name":"value2"}]它应该可以工作。

关于javascript - Laravel selectize.js 结果未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51523066/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com