• 締切済み

javascript と php とでのデータの受け渡し

既出の質問かもしれませんが、どの回答を読んでもいまいち理解できなかったので質問させて下さい。 phpからjavascriptへ、その処理結果をphpに送りたいと考えております。 まず phpの変数のデータをjavascriptでクライアント側で処理させるために、 print(<script type='text/javascript'>);~などなど、 printを使ってphpの変数を入れ込んだスクリプトを出力しています。 そして、出力したjavascriptの中にクライアント側の処理後のデータ をphpに送るために、 XmlHttpRequestのopenメソッドで("GET",url,true)とし、 urlには"***.php" + "?a=" + aの値 をいれて request.send(null);で送信するようにしています。 最後に、送信先のphpで $a = $_GET["a"];として受け取ろうとしています。 ちなみに、これらは全て同一ファイル上に書いてあり、 XmlHttpRequestのopenメソッドのurlには、 そのファイル自身を記述してあります。 ブラウザでアクセスしてソースを見てみると、 javascriptは記載されていますが、処理がされていないようで、よって 最後にGETでデータも取得がされていないようです。 そもそもこういったことは可能なのでしょうか? 自分の考え方は間違っているのでしょうか? javascriptもphpも初心者なもので、考え方があっているのかいないのかも 判断できない状況です。また、このjavascriptが何をきっかけに実行されるようにすればいいのかもよくわかりません。 それでは、宜しくお願い致します。

  • hrf
  • お礼率50% (13/26)

みんなの回答

noname#39970
noname#39970
回答No.1

ajax で引くと 色々参考になるものが出てくると思うよ いま人気の技術だから記事も多いと思う

hrf
質問者

お礼

XmlHttpRequestの使い方はいくらか調べたのですが、 また調べてみます。ご回答ありがとうございました。

関連するQ&A

  • PHPからjavascriptへの変数の受け渡し

    javascriptからPHPを経由して他のサイトのページソースを文字列の変数として取得することを考えています。今回はそれに先立ちとりあえずページソースを取得表示するプログラムを作ってみました。 環境はローカルサーバー内の同じフォルダに以下の二つのファイルを作成しました。 ↓display_XML.html ---------------------------------------- <script language="JavaScript"> var request=new XMLHttpRequest(); request.open("GET","get_XML.php",false); request.send(null); </script> ---------------------------------------- ↓get_XML.php ---------------------------------------- <?php $context = (省略) $res = urldecode(file_get_contents('http://(省略)',false,$context)); echo $res; ?> ---------------------------------------- この状態でdisplay_XML.htmlにアクセスしても何も表示されませんでした。もしかしてゲットに対するレスポンスとして何か帰ってきているかと思いrequest.responseTextの中を見てみましたが、get_XML.phpがそのまま入っているだけでした。ちなみに直接get_XML.phpにアクセスした場合はちゃんとページソースを表示してくれます。 また、今回webアプリの作成は初めてなのでなるべくすでに用意されたライブラリの使用は避けたいと考えています。どうかよろしくお願いします。 また、冒頭でも書いたように、最終的にはjavascript内に文字列として取り込むことを考えています。 その場合はget_XML.phpの最後のコードを echo 'var a='.$res.';' のように記述することで実現できますでしょうか?もしくは他にふさわしい方法がありますでしょうか?合わせてご回答いただけると幸いです。

    • ベストアンサー
    • PHP
  • JavaScriptからPHPへのデータの受け渡しについて。

    現在、アマゾンWebサービスを利用して受け取った書籍データをデータベースへ格納したいと考えています。 この書籍情報取得のシステムは全てJavaScriptと別のCGIプログラムの二つで動いており、DB格納へは一度PHPへと情報を渡し行わなければならないという事を知り色々と探していたのですが、よく理解できる情報に出会えず行き詰っております。 http://www.res-system.com/weblog/item/383 こちらの情報で、 <script type="text/javascript" src="http://www.res-system.com/weblog/media/1/jsphptest.php? param=1"></script> <?php $param = $_GET['param']; header("Content-type: application/x-javascript"); if ($param == '1') { echo "document.write(\"WEB Artisan\")"; } else { echo "document.write(\"RESTARTSYSTEM\")"; } ?> という上二つのソースで単純にデータの受け渡しが出来ると知り、これが使えないかと思ったんですが、 param=1で渡す値はやってみたのですが文字列や、変数では出来ない様子なのです。 自分はPHPは多少分かりますがJavaScriptは全くの初心者でして、どなたか分かりやすく術を教えて頂けないでしょうか。 宜しくお願い致します。

  • PHPの変数をJavaScriptに渡したい

    PHPの中にJavaScritの確認ダイアログを表示しています。 PHPの変数をJavaScript内でも使いたいのですが、どのようにすればよいのでしょうか? <?php $number=$_POST["number"]; if(isset($_POST["delete"])) { //選択したデータの削除 //削除の確認 print("<script language='JavaScript'>"); print("res=confirm('削除してもよいですか');"); print("if(res==false) location.href='delete.php?number=$number';"); print("</script>"); ?> また、<?php  ?>内でJavaScriptを使っているのでprint文でJavaScript文を書いていますが、あまりスマートではありません。 これ以外の記述方法はあるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPの配列をjavascriptへ渡したい

    PHPの配列をjavascriptの配列に渡したいのですがやり方がわかりません。 変数の渡し方ならわかるのですが配列はどう渡せばいいのでしょうか? for文を使って渡せばいいと思うんですがどうやればいいか分かりません。 <?php $filedata=file("data.txt");//javascriptに渡したい配列 ?> <script language="javascript"> var a=new Array();//PHPの配列をこの配列に入れたい </script> 何方か教えてください。

    • ベストアンサー
    • PHP
  • PHP内でJavaScriptの処理は可能?

    PHP内変数 $flag をJavaScriptで参照し、条件処理を行っています。 JavaScriptの処理は onClick() のタイミングで行います。 ソースの概要は以下のようになります。 1.ログインしているか見る(flagでチェック、1はログイン中…) 2.flagのデータ取得、条件処理。 3-1. flagが1以外なら、true処理 3-2. flagが1なら、false処理  ・  ・ と、こんな処理を行いたいのですが…上手く出来ません。 ソースは以下になります。PHP側の変数 "$flag" までの取得は上手く出来たのですが、 JavaScript側の処理で、つまづいてます…。 で、表題にもあるようにPHP内でJavaScriptの処理は可能でしょうか? アルゴリズム的に、アドバイスなどありましたらご教授ください。 以下が主要部分のソースになります。 <?php echo("<script Language='JavaScript'> "+ "<!-- "+ "function check(){ "+ "if($flag != '1'){ "+ "return true; "+ "} "+ "else{ "+ "header('Location: ./error.html'); "+ "exit(); "+ "return false; "+ "} "+ "} "+ "//--> "+ "</script> "); echo(" <a href='test.html'><img src='botton.gif' onClick='check()' "> アドバイスお願い致します。

    • 締切済み
    • PHP
  • javascriptからPHPに変数を渡したい

    Javascriptで制御しているクライアントのページと PHPで制御しているサーバ側のページがあります。 クライアント側のページで生成したJavascriptの変数の値を サーバ側のページに送りPHPで処理したいと考えています。 どのようにすれば変数の値を送ることが出来るでしょうか? 出来ればフォームを使わずに内部処理で行いたですが、 出来なければフォームでも構わないのです。 簡単で構わないので例文を頂けると非常に助かります。 まったくの初心者で恐縮ですが、教授よろしくお願いします。

  • Ajax以外で、JavaScriptからPHPへ渡

    Ajax通信以外で、JavaScriptからPHPへ変数(配列)を渡したいのですが、 可能でしょうか? 下記のような状態の時、js変数dataを、Ajax通信を利用せずにPHP変数として取得したいのですが、どうすればよいでしょうか? JavaScript関数の中で、PHPフォームの送信ボタンをクリックさせる(ような)ことは出来ないのでしょうか? <button type="button" onclick="testsubmit();">送信</button> <script> function testsubmit(){  js処理;  var data = ★★; } </script> ■最終的にやりたいこと ・ボタンをクリックしたら、js処理で取得したjs変数(配列)を、Ajax通信を利用せずに、PHP変数として受け取りたい ・それを出来れば1クリックで処理したい

  • PHPの文字列変数をJavaScriptのalertで表示させたい

    <?php  $mes = 123; print<<<EOF  <script Language="JavaScript">  <!--   JavaScript:alert( $mes );  //-->  </script> EOF; ?> ↑のコードを実行すると123というメッセージボックスが表示されます。 <?php  $mes = "aaa"; print<<<EOF  <script Language="JavaScript">  <!--   JavaScript:alert( $mes );  //-->  </script> EOF; ?> しかしこのように数値変数でははく文字列変数を渡すと表示できません。 JavaScriptにPHPの文字列変数を受け渡すことはできるのでしょうか?

    • ベストアンサー
    • PHP
  • JavaScriptの変数をPHP側に渡せない理由

    WordPressでサイトを作っている時、画面幅を取得してhtmlを出しわけたい部分がありました。 そこで、JQueryで画面幅を取得してその変数をPHP分で条件分岐したいと思ったのですが、 うまくいかず、クッキーや「wp_is_mobile()」関数で今のところ実現しています。 JavaScriptの変数をPHP側で直接使えないことはわかったのですが、その理由が詳しく知りたいです。 phpファイルに ------------------------------------------------ <script>var w = 600; </script> <?php if (w <= 600): ?> 600以上だった時の処理 <?php endif; ?> ------------------------------------------------- みたいな感じで使えたらいいのにとよく思うのですが、 PHPはサーバーサイドスクリプト言語だから、PHPであらかじめ処理されたものがクライアントに送られてきて、その時にJSが読みこまれるから順番的に使えない・・・・ということでいいんでしょうか。 調べようと思っても微妙にずばっとした回答のものがなく、質問しました。 解説サイトのURLとかでもよいので、よろしくお願いいたします。 プログラミングは初心者です。

    • ベストアンサー
    • PHP
  • PHPの処理結果をjavascriptで利用する方法

    既に似たような質問も出ていそうで恐縮ですが(一通り目を通したですが、目的とするものは見つけられませんでした)、 PHPとjavascriptのやりとりについて教えていただければ幸いです。 データをフォームなどから受け取る→サーバー側(php)で処理→ 処理した結果の変数をjavascript用の変数として扱うといったこと がしたいのですが、うまくできません。 実際には以下のような形で書いて失敗してしまいました。。。 /*xxx.php*/ <html> <head> <?php $result = $_POST["sentence"]; ?> <script language="javascript"> result = "<?=$result?>"; </script> <script src="xxx.js" type="text/javascript"language="javascript"></script> </head> <body> <form id="sample"> <input type="text" name="sentence"> <input type="submit" value="送信"> </form> </body> </html> /*xxx.js*/ /*xxx.js*/ window.onload = function(){ document.getElementById("sample").onsubmit = function() { var req = createHttpRequest(); req.onreadystatechange = function(){ if(req.readyState==4 && req.status == 200){ alert(result); //PHPの結果を待った後を想定した何らかの処理      //ここでresultを使いたいが、サーバー側への送信前      //の値が入っているだけでonsubmitが反映されていない。 } } req.open("POST","./xxx.php",false); //<-formでくくられた<input type="text">等の部分は反映されない。 req.send(""); } } function createHttpRequest(){ if(window.XMLHttpRequest){ return new XMLHttpRequest(); } else if(window.ActiveObject){ try{ return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e2) { return null; } } } } 私なりに調べたところ 1.PHPとjavascriptは別の所で動作しているので受け渡しは基本不可能 2.PHP側で動的に書き出すことで見せかけることはできる。 var test = <?=$test?>等 3.XmlHttpRequestでphpの処理を結果を待って、変数を利用しようと思ったが、 <form id="form"> <input type="text" name="sentence"> <input type="submit" value="送信"> </form> といった場合に$_POST["sentence"]に値を入れる方法が不明。 また、 multipart/form-dataによる送信など方法が複雑。 responseTextには<html>から</html>まで格納されてしまった。 処理項目ごとに表示用に別にPHPファイル作成だと困る。 4.<form action = "xxx.php" onsubmit=関数名>とすると、 onsubmitで指定した関数が先に呼び出されてから、 xxx.phpの実行が行われるので、サーバー処理を待たずに javascript側が実行されてしまう。 といったことだけは分かりました。 しかし、どのように変更すればうまくいく(もしくは見せかける) ようになるのかがさっぱり分からなかったため、 質問させていただきました。 よろしくお願い致します。

    • ベストアンサー
    • PHP

専門家に質問してみよう