- 締切済み
別の場所で記述したPHPの値参照
同じPHPファイル内の記述なんですが <script type="text/javascript"> function test(){ <?php //ここで下記の$idの値を取得して変数$uketoriに参照させたいです $uketori= ???? ?> } </script> <?php $id="0123"; ?> よろしくお願いします
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- kool_noah
- ベストアンサー率33% (95/285)
htmlで表示されているのはクライアント側 phpはサーバーサイドなのでリクエストないとどうにもできないのでは? で、サーバーサイドにリクエスト投げてるんだけど、そうみせないのがajax 質問者さんのしたいことは、phpで吐き出されたhtmlにidって変数があって、そのidをtest($id)でjavascriptに渡してますよね で、さらにそこからphpに渡すという事はサーバーサイドでの処理が必要ということでしょうか? 例えばDBにアクセスしないといけないとか? table作るところの処理をはしょってる様なのでなんとも言えませんが・・ <script type="text/javascript"> function test(id){ var html = '<table> ' + id + '<table>'; document.getElementById("insert").innerHTML=html; } </script> <body> <?php $id="0123"; //ボタンをクリックしたらidを関数に飛ばします echo "<input type=submit value=click onclick=test(".$id.")>"; echo "<div id=insert></div>"; ?> </body> で、良いような気もするんですが・・ 関数内でidをどう使いたいかにもよりますけど
- kool_noah
- ベストアンサー率33% (95/285)
いまいち意図が読めないので、見当違いの事書いてそうですが・・ PHPの変数をjavascriptなりformのhiddenなりに埋め込まないとでわ? <script type="text/javascript"> <?php $id="0123"; ?> function test(){ <?php //ここで下記の$idの値を取得して変数$uketoriに参照させたいです $uketori= $id; ?> } </script>
お礼
アドバイスのお礼を忘れていました
補足
kool_noahさん回答ありがとうございます PHPの変数をjavascriptに埋め込めればホントはいいのですが、訳があってそれが出来ません。 ちょっと説明不足な点があったので補足させて頂きます <script type="text/javascript"> function test(id){ <!-- 問題(1) 引数にidを持たせていますがPHPの変数には代入できません。--> <!-- 問題(2) ggってみるとajaxの考えが良いみたいですが納期の関係上、勉強する時間がありません。--> <?php //ここで下記の$uketoriに引数のidか下方のPHPの$idの値を代入する $uketori= ?????; //$uketoriの値を元にtableを作り、html文のinsertに代入をする echo "var html= '<table>$uketori</table>';"; ?> document.getElementById("insert").innerHTML=html; } </script> <body> <?php //訳があって$idの値はここでしか取得できません。恐縮ですが理由は長くなるので割愛させて頂きます。 $id="0123"; //ボタンをクリックしたらidを関数に飛ばします echo "<input type=submit value=click onclick=test(".$id.")>"; echo "<div id=insert></div>"; ?> </body> かなりややこしく考えているのですが、body内での$idの値取得の位置を変えることができません。 body内の$id="123";の位置を変えず、その値を関数で使いたいです。 かなり無理なこと言ってすみません><; どうかお力をお貸しください。
お礼
返事遅くなりました。 回答ありがとうございます。 kool_noahさんの言うとおりクライアントサイドとサーバーサイドがゴチャ混ぜでどうにもならなかったのですが、別の方法でサーバーサイドのPHPだけで処理を行うように仕様変更をかけ解決しました。 ご丁寧にアドバイスをして頂き、とても助かりました。 ありがとうございます。