JavaScriptでPHP変数を使用すると、MVCで表示するためのファイルが含まれます

StackOverflow https://stackoverflow.com/questions/1640274

質問

MVCフレームワークを使用しており、ビューにはビューの外部ファイルにあるJavascriptファイルが必要だとします。ただし、外部ファイルにある私のJavaScriptは、私のビューのいくつかのPHP変数に依存します。 HTMLビュー内のタグにJavascriptを含める場合、PHP変数をJavascriptに単純に挿入できます。

非表示の入力フィールドを作成し、値として必要な変数を割り当てることができます。別のよりエレガントな方法はありますか?

.jsファイルに.phpという名前を付けることでおそらく逃げることができると思いますが、そうするのはあまり好きではありません。

役に立ちましたか?

解決

あなたの質問を完全に理解しているかどうかはわかりませんが、要点が正しければ、ビューのスクリプトタグ内にグローバルjavascript変数を設定するだけで、外部jsに渡されますか?

<script type="text/javascript">
  var myvar1 = <?=$myvar1 ?>;
  var myvar2 = "<?=$myvar2 ?>";
</script>
<script type="text/javascript" src="myexternaljs.js"></script>

他のヒント

JSからサーバー(RESTなど)を呼び出して、依存する変数を取得できます。このためのサービスを作成する必要がありますが、構造はクリーンなままです。

他のスクリプトを含める前にページに投稿するか、次のようなものを使用して、jsファイルのようなphpファイルを含めることができます。

ob_start();
//all variables here
echo 'var someJson = '
    . json_enode($someArray);
$content = ob_get_clean();

header('Content-Type: text/javascript');
header('Content-Length: ' . strlen($content)); //or mb_strlen with utf8
echo $content;
exit;

ヘッダーを追加して、etag(hashing / id)、最終変更、またはexpire / pragmaでキャッシュを提供できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top