<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内に記述しても有効になる手立てはあるのでしょうか?
encodeURI(<?=$nickname?>)
はPHPの出力後に
encodeURI(MyNickname)
となってしまってダブルクォートorシングルクォトがないためエラーになってるのではないでしょうか?
以下のようにスクリプトを変更すると正しく変数が渡ると思います。
<?php $nickname = 'MyNickname'; $email = 'myaddress@example.co.jp' ?> <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件)