PHP→JavaScriptで変数を渡すにはどうしたらよいでしょうか?以下のようにプログラムしたところ


<script type="text/javascript">
function SAVE_text(dataid,comment){
//テキスト欄の挿入
alert($nickname);
xmlhttp = createXMLHttp();
if (xmlhttp) {
xmlhttp.open("POST","save.php?nickname="+encodeURI(<?=$nickname?>)+"&dataid="+encodeURI(dataid)+"&email="+encodeURI(<?=$email?>)+"&comment="+encodeURI(comment),true);
xmlhttp.send("");
}
}
</script>

xmlhttp.openの行は『 missing ) after argument list 』とエラーがでて、『 SAVE_text is not defined 』という表示までされてしまいます。

自分的にはJavaScriptメインでPHPをところどころに変数を埋め込みたいのですが、難しいでしょうか?また、参照するJavaScript内に記述しても有効になる手立てはあるのでしょうか?

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2007/01/26 06:40:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:stephanie No.1

回答回数29ベストアンサー獲得回数2

ポイント60pt
encodeURI(<?=$nickname?>)

はPHPの出力後に

encodeURI(MyNickname)

となってしまってダブルクォートorシングルクォトがないためエラーになってるのではないでしょうか?

以下のようにスクリプトを変更すると正しく変数が渡ると思います。

<?php
$nickname = 'MyNickname';
$email = 'myaddress@example.co.jp'
?&gt
<script type="text/javascript">
function SAVE_text(dataid,comment){
  //テキスト欄の挿入
  alert('<?php echo $nickname; ?>');
  xmlhttp = createXMLHttp();
  if (xmlhttp) {
xmlhttp.open("POST","save.php?nickname="+encodeURI('<?php echo $nickname; ?>')+"&dataid="+encodeURI(dataid)+"&email="+encodeURI('<?php echo $email; ?>')+"&comment="+encodeURI(comment),true);
xmlhttp.send("");
}
}
</script>

また、

<?=$nickname?>

のような記述の仕方はPHPの設定に依存してしまうので、少し長くなりますが

<?php echo $nickname; ?>

のようにしたほうがいいと思います。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません