javascript - jQuery UI 自动完成 : How can I pass additional data with my Ajax call?

标签 javascript jquery ajax jquery-ui autocomplete

我有两个 jQuery UI Autocomplete小部件设置。对于第一个自动完成,用户将输入客户的姓名 - 自动完成将缩小范围,直到选择了正确的客户。然后我有一个回调,它获取返回的客户端 ID 并将其放入隐藏的输入字段中。

接下来是第二个自动完成字段。 搜索时,这需要向服务器发送两个变量 - 用户的搜索字符串(term),以及先前搜索的客户端的用户 ID。

我在处理服务器端方面没有问题,但我遇到的问题是如何将 2 个变量传递给 Ajax 调用,而不仅仅是 term。在我的 PHP 后端中,我还需要查询用户 ID,以仅返回属于该用户的属性。

我该怎么做?

谢谢!

编辑:感谢@JohnP,这就是我最终的结果 - 似乎对我来说工作得很好。将此张贴在这里以供以后路过的任何人引用:

source: function (request, response) {

    var request_data = {
        term: request.term,
        client_id: $('input#client_id_string').val()
    };

    var url = 'http://mysite.com/search/ajax_search';

    $.getJSON(url, request_data, function (data, status, xhr) {
         response(data);
    });
},

最佳答案

如果 source 方法是静态方法,您可以覆盖它。

//code
source: function (request, response) {
    var term = request.term;
     //caching if yo uwant
     var myCustomVar = 42;

     $.getJSON(url + term + '/' + myCustomVar , request, function (data, status, xhr) {
          response(data);
     });
},
//code

如果需要,您可以将其作为 URL 的一部分,也可以将其与请求一起传递。

关于javascript - jQuery UI 自动完成 : How can I pass additional data with my Ajax call?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7965068/

相关文章:

jquery - 将 var 传递给外部 jQuery

javascript - 自动计算发生在先前的值上

javascript - 在 JavaScript 中捕获 302 FOUND

javascript - jQuery UI 自动完成 - 在 KEYDOWN/KEYUP 后访问输入的搜索词

javascript - 删除ajax加载页面并保留原始div不起作用

javascript - 自定义样式滚动条

javascript - 如何让 "am"或 "pm"指示符与 HTML5 时间输入元素一起显示?

javascript - 用于控制 ajax 加载的后退和前进按钮

ajax - 如何在客户端编写javascript来及时接收和解析 `chunked`响应?

javascript - 如何使用 vue.js 显示格式化的 html 字符串