0

いくつかの変数を定義する config.php ファイルがあります。

これらの変数のいくつかを jQuery スクリプトで使用したいと考えています。

次の内容の header-js.php ファイルを作成しました。

<script type="text/javascript">
jQuery("#msgid1").html("Hello world.");
jQuery("#msgid1").html("Hello world again.");
global_cookie_prefix = <?php echo(global_cookie_prefix);?>;
</script>

上記を実行すると、msgid1 div に「Hello world again.」と表示されます。

行を次のように交換すると:

<script type="text/javascript">
jQuery("#msgid1").html("Hello world.");
global_cookie_prefix = <?php echo(global_cookie_prefix);?>;
jQuery("#msgid1").html("Hello world again.");
</script>

msgid1 div は「Hello world」を示しています。

global_cookie_prefix を定義している行が原因でスクリプトが中止されているようです。

これを解決する方法に途方に暮れています。

タク。

4

4 に答える 4

5

問題は、変数をvarキーワードで定義していないこと、および/または PHP スニペットが引用符で囲まれていないことだと思います。これを試して

var global_cookie_prefix = '<?php echo global_cookie_prefix; ?>';
^^^                        ^                                   ^
于 2013-09-26T20:26:40.483 に答える
1

global_cookie_prefix = '<?php echo global_cookie_prefix;?>';変数を文字列としてJS に渡したいので、JS にそれが文字列であることを伝える必要がありますglobal_cookie_prefix:

于 2013-09-26T20:26:37.590 に答える
0

global_cookie_prefix は定数です (大文字ではないため)。定義された定数ではない場合に備えて、global_cookie_prefix に変数記号 '$' を追加してみてください。

<?php echo($global_cookie_prefix);?>;

また、JavaScriptで引用符が必要です...(定数の有無に応じて$の有無にかかわらず試してください)慣例により、定数は大文字です。

global_cookie_prefix = "<?php echo global_cookie_prefix; ?>";
于 2013-09-26T20:29:10.683 に答える
0

あなたのスクリプトは実際には Javascript を出力する PHP スクリプトであるため、global_cookie_prefix が未定義の定数であるため、スクリプトがエラーで終了する可能性があります。global_cookie_prefix が変数で、このスクリプトが含まれるページの別の場所で定義している場合は、'$' 記号を追加してコードを以下のように更新することをお勧めします。

厳密モードでのエラーを回避するには、JS に 'var' キーワードも必要です。

<script type="text/javascript">
  jQuery("#msgid1").html("Hello world.");
  **var** global_cookie_prefix = '<?php echo(**$**global_cookie_prefix);?>';
  jQuery("#msgid1").html("Hello world again.");
</script>

また、Apache エラー ログをチェックしてエラーの内容を確認し、PHP 出力がその行で壊れていないことを確認することをお勧めします。

また、error_reporting をオンにしている場合、global_cookie_prefix が未定義であるという PHP 生成の警告により、JavaScript が確実に壊れ、その時点で失敗します。

このスニペットのコンテキストを提供するために、コードをさらに貼り付けた方が簡単です。

編集: PHP からの文字列出力が JavaScript を壊してしまうため、PHP 出力を一重引用符で囲みました。

于 2013-09-26T20:42:31.763 に答える