javascriptとphpの連携で疑問

解決済みの質問

javascriptとphpの連携で疑問

javascriptの変数をphpに渡すプログラムを、ネットを参考にして次のようなものを作りました。

●クライアント側 (index.html)
<html>
<head>
</head>
<body>
<script type="text/javascript" src="j2p.php?parm=1"></script>
</body>
</html>

●サーバー側 (j2p.php)
<?php
$parm = $_GET['parm'];
header("Content-type: application/x-javascript");
if ($parm == 1) {
echo "document.write('1ですよ')";
} else {
echo "document.write('1じゃないですよ')";
}
?>

上記は問題なく動作するのですが、サーバー側のプログラムを、次のように
変更し、直接$parmを出力しようとすると何も表示されません。

●サーバー側 (NG1)
<?php
$parm = $_GET['parm'];
header("Content-type: application/x-javascript");
echo "document.write('<?php echo $parm; ?>')";
?>

どこか、考え方が根本的に間違っているのかも知れませんが、この問題で
ずっと悩んでおり、先に進めない状態です。

上記プログラムのおかしな点、改善点など、アドバイスよろしくお願い
いたします。

投稿日時 - 2009-09-18 13:25:05

QNo.5299985

すぐに回答ほしいです

質問者が選んだベストアンサー

echo "document.write('".$parm."')";

投稿日時 - 2009-09-18 14:08:21

補足

アドバイスありがとうございます。

おかげさまで無事に表示することができました。
ただ、document.writeの中に記述された変数$parmの左右にピリオドが
付いており、それをダブルクォーテーションでくくっていることの
解釈がよくわからないでいます。
この点について解説いただければ幸いです。
よろしくお願いいたします。

投稿日時 - 2009-09-18 15:26:15

お礼

ありがとうございました。

投稿日時 - 2009-09-19 12:20:53

ANo.2

1人が「このQ&Aが役に立った」と投票しています

[  前へ  |  次へ ]

ベストアンサー以外の回答(2件中 1~2件目)

ANo.3

>echo "document.write('".$parm."')";
PHPから出力する文字列を、変数と文字列で分けているだけです。
""で括られる部分はPHPから文字列として出力するのです。
つまり
document.write('
$parm
')
を結合しているという事です。
ちなみに、ピリオドは変数や文字列などを繋ぐ“結合演算子”で、JavaScriptで言えば“+”に匹敵します。

投稿日時 - 2009-09-18 23:15:21

お礼

ありがとうございました。
おかげさまで良く理解できました。

投稿日時 - 2009-09-19 12:19:24

ANo.1

echo "document.write('<?php echo $parm; ?>')";

echo "document.write('$parm')";

ではどうだろう。

投稿日時 - 2009-09-18 14:06:45

補足

アドバイスありがとうございます。

おかげさまで無事に表示することができました。
ただ、document.writeの中に、phpの変数$parmを直接記述することの
意味がよくわかりません。
私のNGの例の、<?php echo $parm; ?>ではうまくいかない理由について
ご説明いただければ幸いです。
(phpの中でphpを呼んでるのがまずいのでしょうか。。)

投稿日時 - 2009-09-18 15:24:50

お礼

ありがとうございました。

投稿日時 - 2009-09-19 12:22:03

あわせてチェックしたい
  • JavaScript内にJavaScriptを読み込む方法 ...
  • JavaScript document.writeについて ...
  • PHPとJavaScriptの連携について ...
PR

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら