从 php 到 select2 的 json 响应未呈现

Posted

技术标签:

【中文标题】从 php 到 select2 的 json 响应未呈现【英文标题】:json response from php to select2 not rendering 【发布时间】:2015-08-24 08:37:57 【问题描述】:

我正在尝试使用 select2 从 php 后端使用 AJAX 提取数据。我无法像我想的那样弄清楚文档。我想我可能错过了一些理所当然的东西。 我是这样开始的:

HTML

<select id="select_proj" style="width:10em">
  <option value="" selected="selected">Search</option>
</select>

js

$('select').select2();
$("#select_proj").select2(
    ajax : 
        url : '../app/select_prj.php',
        dataType : 'json',
        delay : 250,
        data : function (term, page) 
            return 
                select_proj: term, // search term
                page: 10
            ;
        ,
        processResults: function (data, page) 
            return 
                results: data.items
            ;
        ,
        cache: true
    ,
    escapeMarkup : function (markup)  return markup; , // let our custom formatter work
    minimumInputLength : 1,
);

在 PHP 中

json 对象是从 PHP 中返回的

echo json_encode($result_data);

数据看起来像

[
    "PROJ_ID" : 10039,
    "0" : 10039
,
    "PROJ_ID" : 10042,
    "0":10042
] 

但是,除了一条消息“未找到结果”之外,选择框中什么也没有发生。 我错过了什么?

【问题讨论】:

“未找到结果”在哪里? 在用户输入条目下方的选择组件内 【参考方案1】:

您的回复必须如下所示:

[
     id: 0, text: 'enhancement' ,
     id: 1, text: 'bug' , 
     id: 2, text: 'duplicate' ,
     id: 3, text: 'invalid' , 
     id: 4, text: 'wontfix' 
]
“id”将是选项值 “文本”将是选项标签

并且您必须从“data.items”中删除“.items”,因为您的回复中没有关键“items”。

【讨论】:

非常感谢。在文档中找不到这个。

以上是关于从 php 到 select2 的 json 响应未呈现的主要内容,如果未能解决你的问题,请参考以下文章

将数据从 js 发送到 php、php 到 mysql 以及 REST json 响应时所需的正确编码/转义/htmlentities 是啥

iPhone- 在 POST 中将 JSON 对象发送到 PHP 服务器并从服务器获取响应

从 JSON 请求中自动选择 Select2:使用数据表编辑器

Select2 Ajax 不匹配结果

jquery - 如何使用通过 AJAX 从 MySQL 和 PHP 检索的数据将图像添加到 Select2 下拉列表?

Select2 从本地 json 文件加载数据