みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

PHPとJavaScriptの連携

PHPとJavaScriptの連携に困っています。以下のようにフラグを立てテキストボックスに代入しています。

frm.newdata.value = '<?php if(条件) $flg = true; echo $newdata; ?>'

そしてフラグがてばメッセージを出します。

<?php
if($flg) echo 'alert("このデータは登録済みです");';
?>

ところがフラグ($flg)を共有化したいのですが、上下で別物扱いになります。上の処理では代入をしているのでechoでメッセージまでは出せません。
対応策ご存じであれば教えてください。

投稿日時 - 2014-11-03 14:23:32

QNo.8812436

困ってます

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

PHPとJavaScriptの役割をしっかり分けて考えてください。

【PHP】
・サーバー側で動く
・PHPファイルにリクエストがあると、コードを実行して、出力されたHTMLをブラウザに返す
・リクエストごとに変数の値などは初期化される(状態を保持しない)
・一度HTMLを受信し終えると、(Ajaxを使ってバックグラウンドでやりとりしない限り)更新ボタンを押すまで新たにPHPを実行することは出来ない

【JavaScript】
・ブラウザ側で動く
・更新ボタンを押したり画面遷移しない限り、変数の内容は保持される
・ユーザがブラウザで表示している間はいつでもコードを実行することが出来る

基本的にPHPとJavaScriptで連携するんだったら「JavaScriptのコードを出力する」のではなく「JSONを出力する」方法の方が一般的であり、使い勝手もいいと思います。

JavaScript(jQuery)からPHPのAPIを利用する
http://qiita.com/mpyw/items/62e6e415f86eb30a5ff4

投稿日時 - 2014-11-03 14:42:44

お礼

確かにPHPはリクエストごとに変数の値などは初期化されます。

教わったサイトを参考にajax・jQuery・JSONを利用したところやっと思い通りに行きました。
なおJSONに日本語の文字列を渡したところ動作しなくなりましたが、いろいろ試して原因を
つきとめました。今はうまくいっています。

ありがとうございます。

投稿日時 - 2014-11-03 22:10:22

このQ&Aは役に立ちましたか?

8人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問