如何在远程函数中传递两个值


how to pass two values in remote function?

我想向search.php页面传递多个值,我该怎么做?

 <html>
  <head>
    <title>Ajax Search Box using PHP and MySQL</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script src="typeahead.min.js"></script>
    <script  >
    $(document).ready(function(){
    $('input.typeahead').typeahead({
        name: 'typeahead',
        remote: 'search.php?key=%QUERY',
        
        prefetch: 'search.php',
        limit : 10
    });
});
    </script>
</style>
  </head>
  <body>
        <h1>Ajax Search Box using Node and MySQL</h1>
         <button type="button" >Visit Tutorial</button>
        <input type="text" name="typeahead" class="typeahead" autocomplete="off" spellcheck="false" placeholder="Type your Query">
  </body>
</html>

只需使用&将无法使用typeahead。在设置查询字符串之前,您需要使用replace来处理它。

$('#Last_Name').typeahead({
  name: 'typeahead',
  remote: {
    url: 'Search.pl?query=%QUERY',
    replace: function(url, uriEncodedQuery) {
      var QUERY2 = $("#textfield").val(); // get other field value
      if (!val) return url;
      return url + '&Key2=' + encodeURIComponent(QUERY2)
    },
   limit : 10
});

编辑后:

我创建了一个有两个输入框的fiddle,一个有typeahead,另一个输入的值只是通过type head传递,你会通过netpanel(firebug)看到它,或者无论你是否使用ajax调用,你都可以看到

http://suggestqueries.google.com/complete/search?client=chrome&q=%QUERY&newField=10&callback=jQuery191022225840536777897_1447822862109&amp_=1447822862110

其中"newField"是的另一个输入字段

这里的工作Fiddle

您需要添加&来分离变量。对于您的代码,请执行以下操作。

$('input.typeahead').typeahead({
   name: 'typeahead',
   remote:'search.php?var1=value1&var2=value2',
   limit : 10
});

有两种方法。第一个是创建一个FORM并发送表单中的所有变量,比如这个

url: 'Search.pl?' + $( "#myUrl" ).serialize(),

另一种方法是添加所有需要用"&"分隔的变量

url: 'Search.pl?var1=' + value1 + '&var2=' + value2,