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; ?>')";
?>
どこか、考え方が根本的に間違っているのかも知れませんが、この問題で
ずっと悩んでおり、先に進めない状態です。
上記プログラムのおかしな点、改善点など、アドバイスよろしくお願い
いたします。
No.2ベストアンサー
- 回答日時:
echo "document.write('".$parm."')";
この回答への補足
アドバイスありがとうございます。
おかげさまで無事に表示することができました。
ただ、document.writeの中に記述された変数$parmの左右にピリオドが
付いており、それをダブルクォーテーションでくくっていることの
解釈がよくわからないでいます。
この点について解説いただければ幸いです。
よろしくお願いいたします。
No.3
- 回答日時:
>echo "document.write('".$parm."')";
PHPから出力する文字列を、変数と文字列で分けているだけです。
""で括られる部分はPHPから文字列として出力するのです。
つまり
document.write('
$parm
')
を結合しているという事です。
ちなみに、ピリオドは変数や文字列などを繋ぐ“結合演算子”で、JavaScriptで言えば“+”に匹敵します。
No.1
- 回答日時:
echo "document.write('<?php echo $parm; ?>')";
↓
echo "document.write('$parm')";
ではどうだろう。
この回答への補足
アドバイスありがとうございます。
おかげさまで無事に表示することができました。
ただ、document.writeの中に、phpの変数$parmを直接記述することの
意味がよくわかりません。
私のNGの例の、<?php echo $parm; ?>ではうまくいかない理由について
ご説明いただければ幸いです。
(phpの中でphpを呼んでるのがまずいのでしょうか。。)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- PHP php ログイン 1 2022/11/01 00:24
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ホームページに日付を自動更新...
-
来年の今日の曜日・・・?
-
HpのFlashで,ブロック回避の方...
-
静的メソッドとインスタンスメ...
-
C#テキストボックスの文字を配...
-
同じIDで定義した要素の配列を...
-
同じ型【ハイフンと数字】だけ...
-
関数でy=g(x)のgとは何の略です...
-
ボタンをクリックすると数が増...
-
二次元配列の全要素の全要素を...
-
URLのパラメータを取得しリンク...
-
Excel VBA の ChangeFileAccess
-
idを使わずにonclickで自身の要...
-
getElementByIdを使用したグロ...
-
javascript 変数名の連結をしたい
-
<a>タグのテキストを取得
-
React hooksが値を返して配列変...
-
DOM要素を削除しても、イベント...
-
ジェネレーターの作り方
-
HTML:Tableタグに対し、JavaScr...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
window.openでタイトル名の指定
-
ホームページに日付を自動更新...
-
テキストボックスに入力された...
-
for文のiを使ってリンク先のア...
-
○歳△ヶ月と×日を計算してくれる...
-
引数を渡さずに呼び出し元の変...
-
なぜ、ジャバスクリプトが表示...
-
innerHTMLにて設定した情報を再...
-
前のページに戻るとページトッ...
-
更新でランダムでページ内のテ...
-
今日の月と日付の1週間後や3日...
-
「今日の日付けを画像で表示」...
-
java カレンダーの日付指定で...
-
文字列を点滅させたい
-
HTMLを記述しつつサブ窓(showM...
-
条件分岐(IF文)の簡素化
-
Java Scriptのメソッドについて
-
javascriptとphpの連携で疑問
-
現在の日付から、1ヶ月前にす...
-
この方法を教えてください。
おすすめ情報