Select2没有在AJAX

时间:2017-05-02 16:41:58

标签: javascript ajax jquery-select2

我正在为我正在处理的某个系统创建一个接口,并且我需要围绕系统中其他地方使用的预先存在的PHP AJAX函数编写Javascript(纯粹作为我们的人员)数据库的东西太忙了,无法根据我的需要调整代码。)

使用Select2我需要创建一个select字段,用户在数据库中搜索它们的名称并选择与之匹配的字段,以便稍后将其发布到另一个AJAX函数。我用以下代码完成了这个:

//<select id="sltMyName" style="width: 100%;"></select>

    $("#sltMyName").select2({
      ajax: {
          type: "POST",
          url: "includes/php/report_searchPlayers.php",
          delay: 250,
          data: function (params) {
              return {
                  q: params.term // search term
              };
          },
          processResults: function (data) {
                console.log({ results: data.split(",") });
                return { results: data.split(",") };
          }
      },
      minimumInputLength: 1
    });

这应该将格式为name1,name2,name3,name...的返回字符串转换为要显示的Select2所需的格式,但是,它当前不起作用。下拉列表显示为空白。

我已经看到一些引用text和id属性的问题,但是,它们都在返回JSON字符串的上下文中,所以我不确定它们是否在这里需要以及如何在它们中使用它们这个背景。此外,我在文档中找不到任何此类内容。

有什么建议吗?提前谢谢。

返回的数据: Tommy,Jak_Tommy_Lee_Jones,Tommy_Shelby,Tommy_Balboner,TommyCZ,GA_Tommy,VA_Tommy,Tommy_Skrattar,Tommy_Knocker,Tommy_of_Elektro,Tommy_the_Destroyer,Old_Tommy,tommy_of_house_shelby,TommyDermo,TommyC,TommyCash_CZ,Tommyb69k,SA_Tommy,tommyfaster,Tommy_See,Tommy_de_Destroyer,Tommy_of_Whiteroses,TommyShelby,Templar_Intiate_Tommy,Templar_Initiate_Tommy,tommysuckspp,Tommy_the_Overweight

1 个答案:

答案 0 :(得分:3)

我想我已经弄明白了。主要问题是Select2想要使用的数据需要是一个对象数组,其中至少有一个名为id的属性和一个名为text的属性。在processResults函数中,只需创建这些对象&amp;然后下拉列表将填充您的URL中的数据!

我注意到它尝试按我输入的方式过滤数据,但由于我传入的网址不接受参数,因此每次只返回相同的数据。如果您需要更强大的示例,请告诉我。

https://jsfiddle.net/yp0rp2kw/3/查看我的小提琴,找到合适的解决方案。