0

コンボ ajax 選択メニューを作成し、localhost で実行しています。ファイルをテンプレートとして設定するワードプレス構成に移動しようとしましたが、.js ファイルが他のファイルを呼び出すためのパスが原因で問題が発生しています。

直接パスを呼び出す方法はありますか? JS は次のようになります。

    $(document).ready(function(){
        $("select#direction").attr("disabled","disabled");
        $("select#route").change(function(){
        $("select#direction").attr("disabled","disabled");
        $("select#direction").html("<option>wait...</option>");
        var id = $("select#route option:selected").attr('value');
        $.post("select_direction.php", {id:id}, function(data){
            $("select#direction").removeAttr("disabled");
            $("select#direction").html(data);
        });
    });
});

wordpressのテーマフォルダ/includes/select_direction.phpから呼び出したいのですが

この JS ファイルは、includes フォルダーにも存在します。

4

2 に答える 2

0

Web サイトのドキュメント ルートから、呼び出したいファイルへのパスを直接使用できます。次のようなものかもしれません:

"/theme_folder/includes/select_direction.php"

スラッシュ「/」で始まるパスは、ドキュメント ルートから始まるパスになります。パスが JavaScript コードがあるページからの相対パスである場合、ドットとドット ".." を使用して 1 つのディレクトリを意味することができます。

"../../theme-folder/includes/select_direction.php"

PHP スクリプトからこのパスを渡したい場合、最適なオプションはパスを HTML 要素属性に入れることです。

<body data-script-path="/theme_folder/includes/select_direction.php">

次に、JavaScript コードで、次の方法でパスを取得できます。

var path = $("body").data("script-path");

サーバー側からクライアント側にデータを渡す方法はたくさんあります。JavaScript を PHP で解析することもできますが、それは見苦しい解決策です。HTML5 のデータ属性ははるかに簡潔です。

于 2012-11-20T18:17:41.543 に答える
-1

JavaScript コードは、includes フォルダーにあることを認識しません。実行中のページがどこにあっても実行されます。

そのため、ページが配置されている場所からの相対パスを使用する場合と同じように、ファイルを参照します。

于 2012-11-20T18:10:54.583 に答える