2

PHP変数をjavascriptに渡し、このファイルをプライマリPHPドキュメントにロードできるように、PHPとして解析されたjavascriptを動的にロードしようとしています。javascript と PHP を含む myscript.js.php というドキュメントがあります。次のようにjQueryのgetScriptを使用して、プライマリドキュメントにロードしようとしました:

$.getScript("myscript.js.php", function() {
                alert('loaded script.');
            });

この試みは失敗しました - ファイルの拡張子が .php であるためだと思います。PHPを含むjavascriptを動的にロードする方法はありますか? 頻繁に更新される javascript を通過させようとしているいくつかのセッション変数があり、javascript をリロードする必要があります。

4

3 に答える 3

1

あなたのコードは構文的に正しいようです。ajax 呼び出しのステータスを確認しましたか? 次のように返される php ページにヘッダーを設定する必要があります。

header('Content-Type: text/javascript; charset=UTF-8');

そうしないと、jquery はスクリプト ファイルが返されることを期待しており、ヘッダーが一致しないため、エラーがスローされます。

これを見てください.. http://api.jquery.com/jQuery.getScript/#comment-104973932

于 2012-07-10T03:20:20.537 に答える
1

これを行うには、AJAX を使用する必要があります。

php スクリプトが出力するデータを配列に格納し、配列を php で内破し、内破した配列をエコー出力することができます。

次に、ajax 関数が返す文字列を取得し、それを分解して配列に戻すと、変数に保存しようとしていた値が得られます。

これは jQuery で実現できます: http://api.jquery.com/jQuery.ajax/

于 2012-07-10T03:09:11.097 に答える
1

そのような JavaScript を動的に作成することは、おそらく理想的ではありません。PHP からの生データを変数に出力する方がよいでしょう。スクリプトはこのデータを使用できます。

<?php

$config = array(
  // values
);

?>

<script>var config = <?php json_encode($config); ?>;</script>
<script src="myscript.js"></script> <!-- uses config data -->
于 2012-07-10T03:11:33.870 に答える