1

重複の可能性:
PHP 文字列を Javascript 変数に渡す (および改行をエスケープする)

私は Javascript/jQuery と PHP の概念にまったく慣れていません。Modbus デバイスからデータを取得して csv ファイルに保存するために、Appserv に実装された PHP を 2 週間使用しています。ここで、jQplot を使用してデータをプロットします。簡単なプログラムを作成して、php と javascript コードを一緒に html に実装できるかどうかを最初に確認しようとしています。これは私がhtmlで書いたコードで、javascriptとphpの両方を使用しています。

<!doctype html>
<html>
<head>
<title>Demo</title>
</head>

<body>
<h2>This is a script</h2>
<script type="text/javascript">
    var out = <?php echo "Hello"?>;
    //var out = "Hello"
    document.write(out);
</script>

</body>
</html>

このコードをブラウザで実行すると (Windows 7 で Google Chrome を使用します)、「これはスクリプトです」という見出ししか表示されません。ただし、phpコードのある行を削除し、次の行のコメントを外すと

var out = "Hello";

次に、コードは、想定どおりに「Hello」で出力を出力します。どうしてこれなの?

4

3 に答える 3

5

次のように、PHP タグを引用符で囲む必要があります。

var out = "<?php echo "Hello"?>";

それ以外の場合、PHP がファイルを解析して出力した後、次のように出力されます。

var out = Hello;

... 引用符がないことに注意してください。JavaScript はそれを好まないでしょう。

于 2012-12-13T10:20:07.217 に答える
0

Ben Everard と Eddy Yuansheng Wu に少し変更を加えて同意します

これは機能します:

var out = "<?php echo 'Hello'?>";

これは機能しません

var out = "<?php echo "Hello"?>";

理由: 二重引用符を使用すると、文字列の末尾と見なされ、js が機能を停止します。

于 2012-12-13T11:46:10.657 に答える
0

out 変数に値を与えるため、php コードを囲むのを忘れたと思います。

    var out = <?php echo "Hello"?>;

する必要があります:

    var out = "<?php echo "Hello"?>";

間違っている場合は訂正してください。ただし、これが問題の原因だと思います。:)

編集:とにかく、何人かの人々が私よりも速かったようです!

于 2012-12-13T10:25:45.380 に答える