0

すべてのインライン JavaScript を外部ファイルに移動するために、この変更リクエストがあります。新しいファイルに簡単にコピーして貼り付けようとしましたが、うまくいきませんでした。次の行でエラーが発生しています: var grp_list = <?php echo json_encode($arr_grp); ?>; 少なくとも url: "<?php echo $_SERVER['PHP_SELF']; ?>" 20 回そのようなエラーが発生しています。これらのphp変数を外部javascriptで置き換えるにはどうすればよいですか?? 多くのフォーラムをチェックしましたが、解決策が見つかりませんでした。

助けてくれてありがとう!!

4

2 に答える 2

2

さて、あなたは JavaScript を PHP スクリプトに動的に「アセンブル」しました。最も簡単な解決策は、変数の変換を忘れることです。代わりに、PHP 部分を含むすべての JS コードを、カスタム ヘッダーを使用して JS ファイルのふりをする PHP ファイルに入れます。したがって、「JavaScript」ファイルは次のようになります。

<?php
  // Send a custom header, so that it will be interpreted as a js file.     
  header("Content-Type: application/javascript");
?>

JavaScript and PHP mixed code will go in here, with no modifications

このファイルを「javascript.php」のような名前で保存します。次に、メインの HTML または PHP ファイルに、次のように含めます。

<script src="javascript.php"></script>

それでおしまい!javascript.php ファイルは、サーバーで PHP ファイルとして解釈され、ブラウザーによって JS として取得されます。javascript ファイルで PHP が行う処理の種類だけに注意してください。それはメイン スクリプトのコンテキストに依存する可能性があるため、追加の調整が必要になる場合があります。

于 2013-06-04T18:10:35.627 に答える
1

つまり、PHP でファイルを生成し、カスタム ヘッダーを送信してファイルを JavaScript として処理することなく、PHP 変数を外部 JS ファイルに直接渡すことはできません (編集:これが解決策のように聞こえる場合は、 Marcovecchioの投稿を参照してください)。 )...簡単な解決策は、変数をインラインで渡してグローバルにし、外部ファイル内で使用することです。これにより、JavaScript の大部分を外部ファイルに入れることができますが、変数を PHP から JS に渡すこともできます。

これが最善の解決策というわけではありませんが、おそらく最も簡単に作業を開始できます。

次に例を示します。

<script type="text/javascript">
    var grp_list = <?php echo json_encode($arr_grp); ?>;
    var url = "<?php echo $_SERVER['PHP_SELF']; ?>";
</script>
<script type="text/javascript" src="external.js"></script>
于 2013-06-04T18:10:44.290 に答える