使用tokeninput进行两个并行的ajax调用

时间:2014-12-14 07:13:48

标签: javascript jquery ajax jquery-tokeninput

我一直在试验tokeninput。它就像一个魅力。但最近我偶然发现了一个要求,即在输入栏上进行两次ajax调用。

场景:我的输入栏

<input id="autocompleteMe" >

我通过以下方式初始化tokeninput插件:

$("#autocompleteMe").tokeninput(
"mysite/LookUp.php?callFrom=FromFile",
{
 theme : "facebook",
 propertyToSearch : "myProp"
}
);

这很好用&amp;得到结果并用结果填充我的下拉列表。

要求: 此结果来自我的服务器上的文件。如果找到/未找到结果(在两种情况下),我还需要在我的数据库中查找相同的输入,并提供建议。由于数据库可能已更新。

即。在用户输入上应该触发两个ajax调用:

  1. 从文件中获取结果(我想尽快绑定 结果返回)
  2. 从DB获取结果(可能需要 时间 。并将尽快附加在下拉列表中 检索)。
  3. 我的想法

    $("#autocompleteMe").tokeninput(
    "mysite/LookUp.php?callFrom=FromFile",
    {
     theme : "facebook",
     propertyToSearch : "myProp",
     onResult : function(result){
      // bind the returned results here to the dropdown . Since they are from the file 
      // but how ?
    
      $.getJSON("mysite/LookUp.php",{callFrom : "DBCall"},function(DBResponse){
       // append the results to the dropdown .
       // also this will a async call . i will have attach the callback . I have no idea how to 
      });
     }
    }
    );
    

    为这样一个愚蠢的问题道歉。但是我很久以来就在这个问题上喋喋不休。 任何帮助都是有义务的。

    谢谢&amp;此致!

1 个答案:

答案 0 :(得分:0)

你走在正确的道路上......

如果我没弄错的话,你的onResult块看起来应该是这样的

onResult : function(firstResultSet){
  var returningResults;
  $.getJSON("mysite/LookUp.php",{callFrom : "DBCall", firstResultSet: firstResultSet},function(DBResponse){
       returningResults = DBResponse;
   });
   return returningResults; 
}

重点是,你在 onResult 回调中做了你想做的任何事情,在你操纵数据之后,你返回它。