• ベストアンサー

PHPとJavaScriptの連携

PHPとJavaScriptの連携に困っています。以下のようにフラグを立てテキストボックスに代入しています。 frm.newdata.value = '<?php if(条件) $flg = true; echo $newdata; ?>' そしてフラグがてばメッセージを出します。 <?php if($flg) echo 'alert("このデータは登録済みです");'; ?> ところがフラグ($flg)を共有化したいのですが、上下で別物扱いになります。上の処理では代入をしているのでechoでメッセージまでは出せません。 対応策ご存じであれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
noname#244856
noname#244856
回答No.1

PHPとJavaScriptの役割をしっかり分けて考えてください。 【PHP】 ・サーバー側で動く ・PHPファイルにリクエストがあると、コードを実行して、出力されたHTMLをブラウザに返す ・リクエストごとに変数の値などは初期化される(状態を保持しない) ・一度HTMLを受信し終えると、(Ajaxを使ってバックグラウンドでやりとりしない限り)更新ボタンを押すまで新たにPHPを実行することは出来ない 【JavaScript】 ・ブラウザ側で動く ・更新ボタンを押したり画面遷移しない限り、変数の内容は保持される ・ユーザがブラウザで表示している間はいつでもコードを実行することが出来る 基本的にPHPとJavaScriptで連携するんだったら「JavaScriptのコードを出力する」のではなく「JSONを出力する」方法の方が一般的であり、使い勝手もいいと思います。 JavaScript(jQuery)からPHPのAPIを利用する http://qiita.com/mpyw/items/62e6e415f86eb30a5ff4

palux124
質問者

お礼

確かにPHPはリクエストごとに変数の値などは初期化されます。 教わったサイトを参考にajax・jQuery・JSONを利用したところやっと思い通りに行きました。 なおJSONに日本語の文字列を渡したところ動作しなくなりましたが、いろいろ試して原因を つきとめました。今はうまくいっています。 ありがとうございます。