人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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内に記述しても有効になる手立てはあるのでしょうか?

●質問者: wakannaidesu
●カテゴリ:インターネット ウェブ制作
✍キーワード:JavaScript Missing open PHP エラー
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● stephanie
●60ポイント
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; ?>

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ