Select2 未使用 AJAX 在下拉列表中显示结果

Tho*_*yth 0 javascript ajax jquery-select2

我正在为我正在开发的某个系统创建一个界面,我需要围绕系统中其他地方使用的预先存在的 PHP AJAX 函数编写 Javascript(纯粹是因为做我们的数据库工作的人太忙了)使代码适应我的需要)。

使用 Select2,我需要创建一个选择字段,用户在数据库中搜索他们的姓名并选择与其匹配的姓名,以便稍后可以将其发布到另一个 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
    });
Run Code Online (Sandbox Code Playgroud)

这应该将返回的字符串格式转换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

jam*_*mes 5

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

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

请参阅我的小提琴https://jsfiddle.net/yp0rp2kw/3/以获取可行的解决方案。