首页 文章

jQuery UI自动完成:如何通过Ajax调用传递其他数据?

提问于
浏览
3

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

接下来,是第二个自动完成字段 . When searched in, this needs to send two variables to the server - 用户的搜索字符串( term ),以及之前搜索过的客户端的用户ID .

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

我怎样才能做到这一点?

谢谢!

Edit: 感谢@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);
    });
},

1 回答

  • 1

    如果它是静态方法,您可以覆盖 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的一部分,或者只是将其与请求一起传递 .

相关问题