选择2搜索不工作的json结果
我已经寻找这个问题的答案好几个小时了,但没有找到任何与我的案件有关的东西 我的设置: 我已经为WordPress主题创建了一个带有弹出窗口的自定义TinyMCE按钮,该按钮允许用户从下拉列表中选择自定义帖子类型的帖子(在本例中为“客户评论”),然后将其ID插入快捷码。由于这个主题将运行的站点有超过1000条评论,我认为最好对下拉列表中的数据进行json编码,然后使用select2搜索有限的结果列表(分页结果),并防止整个事件爆发。除以下两项外,所有这些都已成功运行:选择2搜索不工作的json结果,json,wordpress,jquery-select2,Json,Wordpress,Jquery Select2,我已经寻找这个问题的答案好几个小时了,但没有找到任何与我的案件有关的东西 我的设置: 我已经为WordPress主题创建了一个带有弹出窗口的自定义TinyMCE按钮,该按钮允许用户从下拉列表中选择自定义帖子类型的帖子(在本例中为“客户评论”),然后将其ID插入快捷码。由于这个主题将运行的站点有超过1000条评论,我认为最好对下拉列表中的数据进行json编码,然后使用select2搜索有限的结果列表(分页结果),并防止整个事件爆发。除以下两项外,所有这些都已成功运行: json编码的数据会显示出来
[{"id":12286,"text":"John Doe"},{"id":12285,"text":"Jane Doe"},...]
(退回的物品超过800件,所以上面只显示了2件,但你知道了)
下面是我用来让菜单填充json数据的javascript:
$(".js-data-example-ajax").select2({
placeholder: "Select a Review",
ajax: {
url: "_bpl_content/bpl_content.php",
type: 'POST',
params: {
contentType: 'application/json; charset=utf-8'
},
dataType: 'json',
delay: 250,
data: function (term, page) {
return JSON.stringify({ q: term, page_limit: 10 });
},
processResults: function (data) {
return {
results: data
};
},
cache: true
},
minimumInputLength: 3
});
我一辈子都搞不懂为什么除了搜索和分页之外,一切都在运转。有什么想法吗?您的服务器端代码中似乎没有任何用于筛选和分页结果的代码。Select2意识到在服务器端执行此操作更有效,并希望开发人员在服务器端实现它。搜索词将作为
q
传递,页面将作为page
传递(如果可用)
如果您不想在服务器端实现搜索和分页,或者只有一个返回所有结果的端点,您仍然可以解决这个问题。您只需要使用JSON结果作为data
初始化Select2,而不需要使用AJAX功能
$.ajax({
url: "_bpl_content/bpl_content.php",
type: 'POST',
contentType: 'application/json; charset=utf-8'
}).then(function (response) {
$(".js-data-example-ajax").select2({
placeholder: "Select a Review",
minimumInputLength: 3,
data: response
});
});
非常感谢。除了一个小问题外,搜索工作正常。默认情况下,第一个结果(第一次客户审核)始终显示,而不是占位符文本。在构建json数组时,我是否应该更改这些内容?(bpl_content.php)这是
工作方式的结果(第一个结果始终处于选中状态)。您可以通过在
中添加空白的
来解决此问题,该选项可用作占位符选项。
$.ajax({
url: "_bpl_content/bpl_content.php",
type: 'POST',
contentType: 'application/json; charset=utf-8'
}).then(function (response) {
$(".js-data-example-ajax").select2({
placeholder: "Select a Review",
minimumInputLength: 3,
data: response
});
});