Javascript 无法接收目标文件Typeahead.js中的值

Javascript 无法接收目标文件Typeahead.js中的值,javascript,php,jquery,typeahead.js,Javascript,Php,Jquery,Typeahead.js,我已经编写了一些脚本来自动填充搜索输入(来自数据库的搜索数据),连同查询,我正在远程url中发送一些动态变量以进行高级搜索 但我并没有在目标文件中收到任何数据,若只在“远程”中发送查询,则其工作正常,但与远程url中的动态变量一起,则其不工作!请检查我的代码并告诉我哪里错了 <script src="typeahead.min.js"></script> <script> $(document).ready(function(){ $('input.ty

我已经编写了一些脚本来自动填充搜索输入(来自数据库的搜索数据),连同查询,我正在远程url中发送一些动态变量以进行高级搜索

但我并没有在目标文件中收到任何数据,若只在“远程”中发送查询,则其工作正常,但与远程url中的动态变量一起,则其不工作!请检查我的代码并告诉我哪里错了

<script src="typeahead.min.js"></script>
   <script>
$(document).ready(function(){
$('input.typeahead').typeahead({
    name: 'typeahead',
    //remote:'subtasksearch.php?key=%QUERY',
    //remote:'subtasksearch.php?key=%QUERY&&mani=123',
    remote: {
    url: 'subtasksearch.php?key=%QUERY&&mani=',
    replace: function () {
        var q = 'subtasksearch.php?key=%QUERY&&mani=';
        if ($('#country').val()) {
            q += encodeURIComponent($('#country').val());
        }
        return q;
      }
    },
    limit : 10
});
 });
</script>
由于远程url中的动态变量不起作用,我在控制台中观察到一些情况,数据正在url中传递并返回空数组,我想请检查下面的图片


请告诉我哪里错了!是否以错误的方式发送值?

我认为问题在于如何发送查询变量-发送的是文本%query,而不是实际的查询值

url: 'subtasksearch.php?key=%QUERY&&mani=',
应该是包含变量的东西

url: 'subtasksearch.php?key='+QUERY+'&&mani=',
不确定typeahead插件,但可能
this.val()
足以获取值,例如:

url: 'subtasksearch.php?key='+this.val()+'&mani=',

也请考虑使用准备好的语句来修补注射风险(即使在MySQL中):

更新 因此,查看您使用的实际插件,您似乎需要为suggestbox配置嗜血犬,而不仅仅是单独的typeahead。这意味着包含了侦探javascript源代码或使用了捆绑包

<script src="http://twitter.github.com/typeahead.js/releases/latest/typeahead.bundle.min.js"> </script>
<script> 
var tasks = new Bloodhound({
    remote: {
        url: 'subtasksearch.php?key=%QUERY.json',
        wildcard: '%QUERY'
    }
});

$('input.typeahead').typeahead({
    name: 'typeahead',
    source: tasks,
    limit: 10
  });
 </script>

不,它说“uncaughtreferenceerror:querynotdefined”,您必须显式地定义查询变量(基于您实际想要的)。如果要发送提前输入的值,可以是
$('input.typeahead').val()
this.val()
。谢谢,但我无法在此处传递动态变量!嗨,Manikanta,我在看了插件之后更新了我的答案。请看上面的第二次尝试,Manikanta知道远程选项不再有替换。您应该使用prepare:,我已经更新了我的问题,请检查
url: 'subtasksearch.php?key='+QUERY+'&&mani=',
url: 'subtasksearch.php?key='+this.val()+'&mani=',
<script src="http://twitter.github.com/typeahead.js/releases/latest/typeahead.bundle.min.js"> </script>
<script> 
var tasks = new Bloodhound({
    remote: {
        url: 'subtasksearch.php?key=%QUERY.json',
        wildcard: '%QUERY'
    }
});

$('input.typeahead').typeahead({
    name: 'typeahead',
    source: tasks,
    limit: 10
  });
 </script>
var country = $('#country').val()
var tasks = new Bloodhound({
    remote: {
        url: 'subtasksearch.php?key=%QUERY.json'+'&country='+country,
        wildcard: '%QUERY'
    }
});