JQuery自动完成服务器端匹配

JQuery自动完成服务器端匹配,jquery,jquery-ui,autocomplete,jquery-autocomplete,jquery-ui-autocomplete,Jquery,Jquery Ui,Autocomplete,Jquery Autocomplete,Jquery Ui Autocomplete,我正在尝试设置自动完成字段 我已经阅读了jQueryUI文档,但是所有的示例都假设源是一个静态的条目列表,JQuery将从中选择匹配的条目。我的意思是static=该列表是完整的,不取决于用户键入的内容 以下是远程数据源示例中的代码: $( "#birds" ).autocomplete({ source: "search.php", ... 我希望JQuery调用search.php?query=mytext这个URL返回匹配项的列表,因为我需要使用php在数据库中查找建议

我正在尝试设置自动完成字段

我已经阅读了jQueryUI文档,但是所有的示例都假设源是一个静态的条目列表,JQuery将从中选择匹配的条目。我的意思是static=该列表是完整的,不取决于用户键入的内容

以下是远程数据源示例中的代码:

$( "#birds" ).autocomplete({
    source: "search.php",
    ...
我希望JQuery调用search.php?query=mytext这个URL返回匹配项的列表,因为我需要使用php在数据库中查找建议


有办法吗?也许我不理解文档?

Well search.php可以返回它想要的任何内容

对于静态内容,您可能希望执行以下操作:

$myList = array('pizza'=>array('mushrooms','pepperoni','olives'));
echo json_encode($myList);
这与db调用所能提供的功能相差不远

php中的许多框架在从数据库中查找后返回关联数组。我相信,正如我所记得的,即使是内置在php中的标准mysql工具也会做同样或类似的事情

json_encode/json_decode可以帮助将php中的任何内容转换为json。然后,您所需要做的就是回显它,自动完成将相应地响应

你做得对。您可能只需要稍微改变一下格式。您当前正在从search.php输出什么

哦,我差点忘了您可能需要指定输出为jsonp,尽管有时您可以不这样做:

header('content-type: application/json; charset=utf-8');

从自动完成的jQuery UI文档中:

只需指定source选项,就可以自定义Autocomplete以处理各种数据源。数据源可以是:

包含本地数据的数组 指定URL的字符串 回拨 再往下

使用字符串时,Autocomplete插件希望该字符串指向将返回JSON数据的URL资源。它可以在同一台主机上,也可以在不同的主机上。必须提供JSONP。请求参数术语被添加到该URL中。数据本身可以采用与上述本地数据相同的格式


你试过你给的密码吗?它应该调用url search.php?term=mytext

这里是我不久前编写的一些客户端代码的一个片段,为了保护无辜者而进行了更改!这正是你想要的

函数配置自动完成{ $'myautocomplete'。自动完成{ 类型:POST,, 最小长度:3, 来源:函数请求、响应 { var source_url=../handlers/MyLookup.ashx?someparameter=+$someparameter.val; $.ajax{ url:source\uURL, 数据类型:json, 数据:请求, 成功:函数数据{responsedata;}, 错误:函数a,b,c{handlelookuperora;} }; }, 选择:函数事件,ui{$'result'.valui.item.id;} }; }
如前所述,您的search.php页面可以返回您想要返回的任何内容。因此,您可以缩小服务器上的列表范围,并将其返回给客户端,然后客户端将允许用户从该列表中进行选择。

谢谢!你完全明白我在找什么。不幸的是,我在文档中遗漏了这一点,但我发誓我读了很多次,因为我确信有一种方法可以做到这一点。我确实尝试了代码,但代码中没有任何明显的信息表明您在itGreat主题的文本中有一个额外的GET参数。我也在研究自动完成,我试图找出服务器端的php文件,它将在数据库中按名称和类别进行搜索。你在这上面找到什么了吗?Thans@alexela看一下这个问题的答案。或者我没有找到它。