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
我想我已经明白了。主要问题是想要使用的数据Select2需要是一个对象数组,其中至少有一个名为 的属性id和一个名为 的属性text。在processResults函数中,只需创建这些对象,然后下拉列表将填充您 URL 中的数据!
我注意到它尝试在我输入时过滤数据,但由于我传入的 url 不接受参数,因此它每次都返回相同的数据。如果您需要更强大的示例,请告诉我。
请参阅我的小提琴https://jsfiddle.net/yp0rp2kw/3/以获取可行的解决方案。