Jquery 使用 json 和参数自动完成

发布于 2024-10-20 09:42:02 字数 1298 浏览 2 评论 0原文

我正在尝试做一个自动完成输入字段。每次用户在该字段中键入一个字母时,该字段的值都会发送到服务器,并且服务器会使用匹配的单词进行答复。

var acOptions = {
             source:function (request, response) {
                 $.ajax({
                     url: "index.php?option=com_fmw&view=keywords_api&controller=keywords_api&format=raw", 
                     type: "GET", dataType: "json",
                     data: { expr: request.term},
                     success: function (data) {
                         response($.map(data, function (item) {
                             return item.value;
                         }))
                     }
                 })
                 }, 
     minChars: 1,
     dataType: 'json'
};

$( "#search_box_input" ).autocomplete(acOptions);

这是来自服务器的数据示例:

[{"value":"Greater"},{"value":"great"},{"value":"greatly"},{"value":"Greater-Axe"}]

前面的代码向服务器发出正确的请求(并且服务器做出正确的响应),但它不会在文本字段中显示任何内容。

我尝试在没有显式 ajax 对象的情况下进行自动完成,但后来无法将字段的当前值(请求的参数“expr”)发送到服务器:

var acOptions = {
        source: "index.php?option=com_fmw&view=keywords_api&controller=keywords_api&format=raw&expr=",
        minChars: 1,
        dataType: 'json'
};
$( "#search_box_input" ).autocomplete(acOptions);

谢谢您的帮助!

I am trying to do an autocomplete input field. Everytime a user type a letter in that field, the value of the field is sent to the server and the server answer with words that match.

var acOptions = {
             source:function (request, response) {
                 $.ajax({
                     url: "index.php?option=com_fmw&view=keywords_api&controller=keywords_api&format=raw", 
                     type: "GET", dataType: "json",
                     data: { expr: request.term},
                     success: function (data) {
                         response($.map(data, function (item) {
                             return item.value;
                         }))
                     }
                 })
                 }, 
     minChars: 1,
     dataType: 'json'
};

$( "#search_box_input" ).autocomplete(acOptions);

This is an example of data from the server:

[{"value":"Greater"},{"value":"great"},{"value":"greatly"},{"value":"Greater-Axe"}]

The previous code do the right request to the server (and the server answer right) but it does not display anything in the text field.

I tried to do the autocomplete without an explicit ajax object but then I couldn't send the current value of the field (parameter "expr" of the request) to the server:

var acOptions = {
        source: "index.php?option=com_fmw&view=keywords_api&controller=keywords_api&format=raw&expr=",
        minChars: 1,
        dataType: 'json'
};
$( "#search_box_input" ).autocomplete(acOptions);

Thank you for your help!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

深巷少女 2024-10-27 09:42:02

您可以使用 jQuery 提取字段的值,将其添加到 URL 参数字符串中。

var acOptions = {
        source: "index.php?option=com_fmw&view=keywords_api&controller=keywords_api&format=raw&expr=" + $('#ID_OF_YOUR_TEXTBOX').val(),
        minChars: 1,
        dataType: 'json'
};
$( "#search_box_input" ).autocomplete(acOptions);

You can use jQuery to pull the value of your field to add it to URL parameter string.

var acOptions = {
        source: "index.php?option=com_fmw&view=keywords_api&controller=keywords_api&format=raw&expr=" + $('#ID_OF_YOUR_TEXTBOX').val(),
        minChars: 1,
        dataType: 'json'
};
$( "#search_box_input" ).autocomplete(acOptions);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文