2009-05-13 11 views
0

以下のスクリプトは、CMSを使用していないデモページでテストしました。 スクリプトはindex.phpファイルにあり、正常に動作します。WordPressでjQueryスクリプトが起動しないのはなぜですか?

<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> 

ここでは、Wordpressテンプレートファイルで同じコードを使用します。 しかし、何も起こっていません。スクリプトがまったく起動していないようです。

私はユーザーフレンドリーなURLを使用しており、カスタムパーマーリンクを/%category%/%postname%に設定しています。 多分言いたいことがありますか?

ファイルの「警告( 'hello')」テストがページのロード時に実行されるため、bsn.AutoSuggest_2.1.3.jsが実行されていることがわかりました。

何が間違っている可能性がありますか?

これは私の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中(simplyfied)コード:

<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> 

任意の提案誰ですか?これは右、URLです http://www.brandspankingnew.net/archive/2007/02/ajax_auto_suggest_v2.html

答えて

0

いいえ! 約20時間の研究の後、私は答えをblog by Ryan Pharisで見つけました。 私が疑っていたように、それは簡単な解決策でした。

Wordpressは「ユーザーフレンドリーなURL」を使用しています。 は、したがって、私のパスは次のように終わった: http://www.mysite.com/includes/autosuggest.php?json=true&

REALパスはこれです: http://www.mysite.com/wp-content/themes/my_theme/includes/autosuggest.php?json=true&

私はWordpressのからURLを取得する必要がありますので、私のスクリプトは、外部の.jsスクリプトに配置することはできません。だから私はこれをやった:

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

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

私のスクリプトは動作し、私は幸せなキャンパーです。

1
includes/autosuggest.php?json=true& 

これは私が使用するプラグインですか? (

http://yourserver.com/includes/autosuggest.php 

..and次の2つのHTMLを生成するためにテンプレートを使用します。私はautosuggest.phpのURLがである場合、それはあなたのテンプレートがとても生成ファイルへの相対になってしまうだろうと思います

:あなたは、おそらくそれが見たい..when

http://yourserver.com/frontpage/includes/autosuggest.php 
http://yourserver.com/categories/anotherpage/includes/autosuggest.php 

:作らアップ)のURL:

http://yourserver.com/frontpage/ 
http://yourserver.com/categories/anotherpage/ 

私はそれがあなたのためにここで探してますかなり確信しているとして、

http://yourserver.com/includes/autosuggest.php 

です。そのJSONのURLの先頭に「/」を追加して、それを修正するかどうかを確認してください。

+0

すごく早かった。 私は自分の間違いであることを発見しました。 "another/dir/sl_header.php"を使用していました 正しいパスを設定すると、物事が発生しています。 私はautosuggest.phpファイルが見つからないという問題があります。 bsn.AutoSuggest( 'product_search'、options)からわかるように、私はテキストボックスの正しい名前を使用しています。 Firebugは私に404を見つけません。 – Steven

+0

私はもう一度行ったことがあります。これは、生成されたページからの相対URLに解決されたためです。 –

+0

私のURLはhttp:// localhost/mywebsite/store-locatorです。ファイルへの「物理的な」パスは、http://localhost/mywebsite/includes/autosuggest.phpです。私はWordpress CMSでユーザーフレンドリーなURLを使用しているので、上記の提案がうまくいくとは思わない。理由の1つは、「Hello world」と表示されたtest.phpを作成してルートディレクトリに置くと、http://localhost/mywebsite/test.phpからアクセスできなくなるということです。 Wordpressは、 "Nothing found"というテキストのデフォルトテンプレートのみを表示します。 – Steven

関連する問題