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/19 06:35:02
  • 終了:2007/01/26 06:40:02

回答(1件)

id:stephanie No.1

stephanie回答回数29ベストアンサー獲得回数22007/01/19 08:31:37

ポイント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; ?>

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

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

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません