【问题标题】:Select 2 ajax call not populating with results选择 2 ajax 调用未填充结果
【发布时间】:2016-09-02 16:14:50
【问题描述】:

刚刚从 github 下载了一个 select2 文件,最新版本 4.0.3,我想根据我输入的内容(ajax 请求)填充选项

这是代码

$('#usernetwork').select2({
    ajax: {
        url: 'someurl.php',
        dataType: 'json',
        delay: 250,
        data: function (params) {
          return {
            q: params.term, // search term
            page: params.page
          };
        },
        processResults: function (data, page) {

          return data.items;
        },
        cache: false
    },
    minimumInputLength: 1
});

url (someurl.php) 显示这个 json 结果

[{"id":"1","text":"ClickWeb"},{"id":"2","text":"ClickWeb 1"},{"id":"3","text":"ClickWeb 2"},{"id":"4","text":"ClickWeb 3"}]

最后选择字段是这个

<select name="usernetwork" id="usernetwork" class="form-control">
</select>

这是我第一次尝试这个,现在我没有得到任何查询(用于测试目的)

结果没有显示,我不知道如何解决这个问题,有什么提示吗?

【问题讨论】:

  • 尝试使用空选项:
  • 没有工作,它甚至没有像以前那样加载
  • 在 json 结果中尝试processResults: function (data, page) { return data; } not isset items
  • 仍然没有结果,将“data.items”替换为“data”,没有任何变化。

标签: php jquery ajax select2


【解决方案1】:

试试我的回答,你唯一需要改变的是你在 processResults 回调中的 return 语句,像这样

return {
          results: data

       };

这里是完整的代码:

         $('#usernetwork').select2({
                    ajax: {
                        url: 'someurl.php',
                        dataType: 'json',
                        delay: 250,
                        data: function (params) {
                            return {
                                q: params.term, // search term
                                page: params.page
                            };
                        },
                        processResults: function (data, page) {

                             return {
                                results: data

                              };
                        },
                        cache: false
                    },
                    minimumInputLength: 1
                });

【讨论】:

  • 没有,没用,select2 加载正确,我可以预先填充它,但没有成功
  • 在 return 语句之前在 processResults 中正确的 console.log(data) 并检查您的 php 脚本响应。
  • 我猜数据甚至没有被提交,console.log 中没有返回任何内容,你怎么看?
  • 它是否向服务器发出请求?检查你的控制台
  • 控制台没有结果:这是 processResults 代码: processResults: function (data, page) { console.log(data);返回{结果:数据}; }
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-30
  • 2017-04-14
相关资源
最近更新 更多