Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我的jQuery脚本没有在Wordpress中触发?_Jquery_Wordpress_Autocomplete - Fatal编程技术网

为什么我的jQuery脚本没有在Wordpress中触发?

为什么我的jQuery脚本没有在Wordpress中触发?,jquery,wordpress,autocomplete,Jquery,Wordpress,Autocomplete,我已经在一个没有使用任何CMS的演示页面上测试了下面的脚本。 该脚本位于index.php文件中,工作正常 <form method="get" action=""> <input id="label_search" type="text" value="" maxlength="40" name="inputText"/> </form> <script type="text/javascript"> var options = {

我已经在一个没有使用任何CMS的演示页面上测试了下面的脚本。 该脚本位于index.php文件中,工作正常

<form method="get" action="">
  <input id="label_search" type="text" value="" maxlength="40" name="inputText"/>
</form>

<script type="text/javascript">
  var options = {
      script:"includes/autosuggest.php?json=true&",
      varname:"input",
      minchars: 2,
      delay: 200,
      json:true,
      shownoresults:false,
      maxresults:15,
      timeout: 5000
  };

  var as_json = new bsn.AutoSuggest('inputText', options);
</script>

变量选项={
脚本:“includes/autosuggest.php?json=true&”,
varname:“输入”,
明查斯:2,
延误:200,
是的,
结果:假,
最大结果:15,
超时:5000
};
var as_json=new bsn.AutoSuggest('inputText',options);
现在我想在Wordpress模板文件中使用相同的代码。 但什么都没有发生。看起来脚本根本没有触发

我正在使用用户友好的URL,并已将自定义永久链接设置为/%category%/%postname%。 也许这有什么要说的

我知道bsn.AutoSuggest_2.1.3.js正在运行,因为页面加载时会对文件执行“alert('hello')”测试

有什么不对劲吗

这是我的WP代码:

sl_startpage.php:

<?php
/*
Template Name: SL - Start page
*/ 
  get_header(); ?>
  <div id="myArea">
  <?php
    include_once('includes/storeLocator/sl_header.php');
  ?>
  </div>

<?php 
  get_footer(); 
?>

这是sl_header.php中的(简化)代码:

  <div id="sl-header">
    <form method="get" action="">
      <input id="label_search" type="text" value="" maxlength="40" name="product_search"/>
    </form>                   
  </div>


  <script type="text/javascript">
    var options = {
        script:"includes/autosuggest.php?json=true&",
        varname:"input",
        minchars: 2,
        delay: 200,
        json:true,
        shownoresults:false,
        maxresults:15,
        timeout: 5000
    };
    var as_json = new bsn.AutoSuggest('product_search', options);
  </script>

变量选项={
脚本:“includes/autosuggest.php?json=true&”,
varname:“输入”,
明查斯:2,
延误:200,
是的,
结果:假,
最大结果:15,
超时:5000
};
var as_json=new bsn.AutoSuggest('product_search',options);
有什么建议吗

这是我使用的插件:

这是url,对吗?我认为它最终将与模板生成的文件相关,因此如果autosuggest.php的url位于:

http://yourserver.com/includes/autosuggest.php
..并使用模板为以下两个(组成的)URL生成html:

我很确定it将在这里寻找您的包括:

http://yourserver.com/frontpage/includes/autosuggest.php
http://yourserver.com/categories/anotherpage/includes/autosuggest.php
…当您可能希望它看到:

http://yourserver.com/includes/autosuggest.php
…因此,尝试在JSON中的url前面添加一个“/”,看看这是否可以纠正它。

好吧! 经过大约20个小时的研究,我在一份报告中找到了答案。 正如我所怀疑的,这是一个简单的解决办法

Wordpress正在使用“用户友好的URL”。 因此,我的道路就这样结束了:

真正的路径是:

无法在外部.js脚本中找到我的脚本,因为我需要从Wordpress获取URL。所以我这样做了:

<?php $site_url = bloginfo('template_url'); ?>

 <script type="text/javascript">
    var options = {
        script:"<?php echo $site_url; ?>includes/autosuggest.php?json=true&",

变量选项={
脚本:“includes/autosuggest.php?json=true&”,

现在我的脚本运行正常,我是一个快乐的露营者。

哇,太快了。我发现这是我自己的错误。我正在使用“另一个/dir/sl_header.php”,一旦我设置了正确的路径,事情就会触发。现在我唯一的问题是找不到autosuggest.php文件。正如你从bsn.autosuggest('product_search',options)中可以看到的那样,我使用的是正确的文本框名称。Firebug只是给了我一个404未找到。我又尝试了一次,可能是因为它从生成的页面解析为相对url(请参见上面的编辑)。我的url是:。物理该文件的路径是:。因为我在Wordpress CMS中使用用户友好的URL,所以我认为您上面的任何建议都不起作用。一个原因是,如果我创建显示“Hello world”的test.php,并将其放在根目录中,我将无法访问它。Wordpress将只显示带有文本的默认模板“什么也没找到”。
http://yourserver.com/includes/autosuggest.php
<?php $site_url = bloginfo('template_url'); ?>

 <script type="text/javascript">
    var options = {
        script:"<?php echo $site_url; ?>includes/autosuggest.php?json=true&",