在 jQuery 自动完成中动态发送数据和接收数据
我正在使用 jQuery 的自动完成插件来填充文本框元素。我希望每当在文本框中输入单词时数据都来自 API 调用。没有预定义的数组传递给自动完成函数,它是从 PHP 脚本动态生成的。 我正在使用的代码,
$(document).ready(function(){
$("#textbox").autocomplete("myurl.php");
});
PHP 脚本采用一个键(即 $__GET['key']
)作为响应值,并在此基础上查询数据库并给出 JSON 输出。
但这不起作用,如何将键值发送到 PHP 脚本并获取 JSON 返回值并填充我的自动完成元素?
I am using jQuery's autocomplete plugin to fill the textbox element. I want the data to be coming from an API call whenever a word is entered in the textbox. There is no predefined array to be passed to the autocomplete function, its dynamically generated from a PHP script.
The code that I am using,
$(document).ready(function(){
$("#textbox").autocomplete("myurl.php");
});
the PHP script takes a key(i.e $__GET['key']
) as response value, and on the basis of that queries the database an gives a JSON out put.
But this is not working, how can I send the key value to the PHP script and get the JSON return value and populate my autocomplete element?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
根据此页面: http://docs.jquery.com/Plugins/Autocomplete/autocomplete# url_or_dataoptions,您的 PHP 脚本需要将
$_GET['p']
作为输入文本,将$_GET['limit']
作为最大数量条目。如果我理解正确,您的脚本正在寻找“key”参数,而它应该寻找“p”参数。它还表示响应应该是新行上的每个单词,因此您需要为数据库中的每个单词
echo "$word\n";
,而不是作为 JSON 传递。或者,如果您决定使用 JSON,则可以使用类似以下 JQuery 的方式加载数据:
您的 PHP 将接受“key”参数,查询数据库,然后使用
json_encode( )
在名为“txt”的单词数组上。According to this page: http://docs.jquery.com/Plugins/Autocomplete/autocomplete#url_or_dataoptions, your PHP script needs to take
$_GET['p']
as the input text and$_GET['limit']
as the max number of entries. If I understand correctly, your script is looking for the 'key' parameter, when it should be looking for the 'p' parameter.It also says that the response should be each word on a new line, so rather than passing as JSON, you would need to
echo "$word\n";
for each word from your database.Alternatively, if you're set on using JSON, you could load the data using something like the following JQuery:
Your PHP would take in the 'key' parameter, query your database and then use
json_encode( )
on the array of words called 'txt'.据我所知,您在 PHP 脚本中收到的参数具有键“q”(即
$search = $_GET['q'];
),请参阅 http://docs.jquery.com/Plugins/Autocomplete/autocomplete#url_or_dataoptions 了解详细信息。
AFAIK the parameter you recieve in your PHP script has the key "q" (i.e.
$search = $_GET['q'];
)See http://docs.jquery.com/Plugins/Autocomplete/autocomplete#url_or_dataoptions for details.