• 締切済み

AjaxとPHPの連携について

AjaxからPHPにHTTPリクエストし、PHP側でXMLの処理をさせてAjaxにXMLのデータを返す処理ができません。 PHP側でXMLをAjaxに返す時、どのようなコードで書けばよろしいですか?

noname#139568
noname#139568
  • AJAX
  • 回答数1
  • ありがとう数1

みんなの回答

noname#138894
noname#138894
回答No.1

PHPからみた場合、相手がjavascriptからの非同期通信であろうが、 ブラウザからの通常のアクセスだろうが関係ないので、 適切にリクエストを処理して、 echo でXMLなりJSONなり文字列としてを出力してあげれば問題ありません。 例えばこんな感じで(参考URLから引用です。) <?php $result = getRecordSet($_GET['query']; echo '<?xml version="1.0" encoding="ISO-8859-1"?>' . '<car>'; while($row = mysql_fetch_array($result)) { echo "<make>" . $row['make'] . "</make>"; echo "<model>" . $row['model'] . "</model>"; echo "<year>" . $row['year'] . "</year>"; echo "<description>" . $row['description'] . "</description>"; } echo '</car>'; ?> 参考 http://www.ibm.com/developerworks/jp/web/library/wa-aj-php/

関連するQ&A

  • JQueryはAJAXとは無関係??

    質問◆JQueryおよびJQueryMobileは「AJAX」とは無関係なのでしょうか? 「JQueryMobileを使っているとき、DOMによってHTMLを動的に差し替えている」という認識なのですが、 特にRequest関連の記載をJavaScriptで記載していない限り、AJAXの処理は行われないのでしょうか? それとも、 JQuery Mobileを使っている場合は、ページ遷移などで、プログラマが意識していなくても(独自にプログラムを書いていなくても) AJAXの処理が行われているのでしょうか? /************************************/ サーバへのリクエストはなくても、1つのマシン内の、HTMLファイルとHTMLファイルの間で、 HTTPで通信がされるということはないと思っています。 (※基本、HTTPはクライアントとサーバの間のときしか使われないのですよね?) JQueryの技術情報のサイトを見ていると、 よく「document.ready」と書かれていたりするソースを見かけますが、 これはAjaxとは関係なく(通信とは関係なく)、 また「xhr.send」も書かれていないHTMLは、AJAXは使われないという理解です。 (「Form、submit」とも関係がない) XMLHttpRequestも「HttpRequest」とあるわけですし、 「Form、submit」を書いているときに行われるわけではないけれども、かわりに、 「xhr.send」とJavaScriptで実行されたタイミングで走る処理であり、 その際、「サーバから返される情報がXMLのデータ形式で(XML以外もですが、、)」だという理解なのですが、合っていますでしょうか?

    • ベストアンサー
    • AJAX
  • ajax + PHPによるエラーの返し方について

    エラーが戻ってこず困っています。 質問させてください。 ■質問内容 以下の記載の、【url: "./ajax_upd_user.php",】内部にて 任意のエラーコードを返し、【error: function(){】へ遷移するようにしたい。 ■現状 【ajax_upd_user.php】で任意のPHPの「throw new exception」を返しても successになってしまう。。。 ■ソースコード一部 ○「test.php」に以下のコードを記載 $.ajax({ type: "POST", url: "./ajax_upd_user.php", data: strData, dataType: "html", success: function(res){ $('#form_Area').oneTime(2000,function(){ $('#form_Area').unmask(); getUpdateAll(res); })}, error: function(){ $('#form_Area').unmask(); alert( "登録処理でエラーが発生しました。"); } }); お手数ですが、知っている方いらっしゃいましたら ご教授お願いいたします。 以上、よろしくお願いいたします。

    • ベストアンサー
    • AJAX
  • Ajax.RequestでのPHP通信について

    new Ajax.Request を利用してちょっとしたメール送信フォームを作っています。 一通り完成はしたのですが、PHP側での未入力チェック後、jsでの受け取り方が分からず困っています。 ----- <javascript ソース> function postData() {  new Ajax.Request(   "send.php", {    method: "post",    parameters: Form.serialize("myform"),    onComplete: onCompleteHandler   }  ); } function onCompleteHandler(request) {  // ここでPHP側から未記入チェックを受信したい } <PHP ソース> // 必須項目チェック if( $formValue1 == "" || $formValue2 == "" ) {  // ここから未記入を通知したい } ----- このようにPHP側で記入チェックし、それをjs側で受けとる方法が分からず困っています。 すみませんがどなたか教えていただけると助かります。

  • Ajaxの動き

    googleと本で調べたのですが、今いちわからないため質問させてください。 (1)教科書から、Ajaxは、XMLをJavascriptでやり取りしている非同期通信という定義なのはわかりましたが、結局、AJAXを使うということは、HTMLに、<Script>のタグで、JQueryなどのパスを書くということなのでしょうか? AJAXは概念的なものであって、プログラムやモジュールそのものではないと捉えています。 (2)Ajaxによる非同期通信は、何をきっかけとして通信が始まるのでしょうか? 通常は、FORMがSUBMITされたときに、サーバにリクエストがいくという認識ですが そもそも、Ajaxは、何をイベントとしてハンドルしているのでしょうか?(何をきっかけに処理が始まっているのでしょうか?) HTMLに、<Script>のタグで、JQueryのパスを書くと、ハンドルする機能が使用されるのでしょうか? Ajaxでも「リクエスト」は行われているけれども、処理結果として戻されるものがXML形式であるだけだという理解で良いのでしょうか?

    • ベストアンサー
    • AJAX
  • jquery PHP 値 ajax

    失礼します。現在jqueryで作成した2次元配列をPHP側に渡したいのですが上手くいきません。 jquery側のコンソールで確認した際にはsuccessの処理が行われ配列の中身がjson形式で表示されるのですが、その内容をPHP側で確認しようとするとNULLが返ってきてしまいます。 何卒ご教授よろしくお願いいたします。 html側 $(function(){ // 送るデータ形式はJSONでなければ、PHP側でエラーが出る.のでJSON.stringify()でJSON形式に変換 send_data= JSON.stringify(data); // 送信処理 $.ajax({ url: "ajax.php", // 送信先のPHP type: "POST", // POSTで送る contentType: "Content-Type: application/json; charset=UTF-8", //必須ではなさそうだが、サーバ側との整合のために明示しておいた方がよい。 // dataType: 'json', //受信形式 必須ではなさそうだがサーバ側との整合のために明示しておいた方がよい。 data:send_data //JSON形式の送信データ }).success(function(data, status, xhr) { // 通信成功時の処理 console.log("success"); console.log("data ="+data); console.log("status ="+status); console.log("xhr ="+xhr); }).error(function(xhr, status, error) { // 通信失敗時の処理 console.log("error"); }).complete(function(xhr, status) { // 通信完了時の処理 console.log("fin"); }); }) }) PHP側 二通り試してみました。 <?php //php://inputはPOSTの生データを取得できる $json = file_get_contents("php://input"); //JSON形式データをPHPの配列型に変換 $data = json_decode($json); var_dump($data) ; //POSTできたデータを格納 $hoge = $_POST['data']; var_dump($hoge);

    • ベストアンサー
    • AJAX
  • PHP4でのAjax データ出力形式について

    こんにちは PHP4.4.9でAjax通信時のデータ出力形式をどうしようか悩んでいます。 やりたい事は、HTMLのSELECTタグの中身を入れ替える事です。 普段は主にjsonでデータのやり取りをしていますが、PHP5.2以降という事でXMLにしようとしたのですが、今時じゃないのかなかなかサンプルが見つからず・・・ PEARやPECLでのライブラリ等の追加は都合上、行えません。 自前でXMLやJsonを作る事はしたくないので、よいサンプル等あればご教示ください。

    • ベストアンサー
    • PHP
  • ajax googlmap

    お世話になります。googlemapについての質問です。 現在、「Googleマップ+Ajaxで自分の地図を作る本」という書籍を読んでgooglemapを使用したサイトの構築を行っております。 書籍のサンプルコードをローカルのブラウザで開いた際、firefox(ver3.0.4)ではmapが表示されますが、IE(ver6.0.2900.2180)では 表示されません。サンプルコードの内容を一部記載しますと、 var request = GXmlHttp.create(); request.open("GET", "places.xml", true); request.send(null); request.onreadystatechange = function() { if (request.readyState == 4) { となっており、以下xmlファイルの座標データをmapに反映させる処理が続くのですが、IEでは "if (request.readyState == 4) {" の分岐に入っていないようです。 書籍中には、IE6で動作確認済みとあります。出版元に質問したのですが、返事がありません。お分かりの方いらっしゃいましたらよろしくお願い致します。

    • ベストアンサー
    • HTML
  • phpとajaxの比較

    webアプリケーションを作成する場合 phpとajaxのどちらが良いでしょうか? また、メリット、デメリットなどあるでしょうか? (ajaxはjsとxmlを使った非同期通信ということは認知しています) webに関して色々と勉強しているのですが 上記のような疑問を感じで質問させていただきました。 どうかご教授願いたいと思っています。 よろしくお願いします。 そもそもこのような疑問自体が間違っていたら申し訳ございません。 (私はphp初心者です)

    • ベストアンサー
    • AJAX
  • Ajax.requestでphpファイルを習得するとwhileが実行されない。

    プログラミング初心者です。初歩的な見落とし等あるかもしれませんがどうぞよろしくお願いします。 現在、AJAX、phpおよびMySQLを使ってWebアプリケーション(もどき)を製作しています。 元のファイル(便宜上a.htmlとします)にてprototype.jsのAjax.Requestを使ってphpファイル(db.phpとします)に向けて送ったパラメータによって処理を分けつつ、db.phpにてMySQLから取得して表示させたデータをさらにresponseTextで取得してa.html上に表示させるというという挙動を期待してコードを書いていました。 しかし取得したresponseTextの内容から推測するに、db.php単体で表示させると機能するwhileが、Ajax.requestでphpファイルにアクセスした場合には機能していないのです。 もう少し詳しく説明しますと、データを格納しているテーブルに対して、select* from [テーブル名] のクエリを投げたあと、 while($row= mysql_fetch_row($result)){ echo row["カラム名"]; } を行ってテーブルの内容を出力していたのですが、 phpファイルのurlをブラウザに直に打ち込んで表示させた場合は全レコードの内容が表示されるのに対し、Ajax.Request→responseTextでphpファイルの内容を取得した場合には、1行目にレコードの内容しか表示されないのです。 while文の後に出力した文字も表示されているのでwhile文の途中でコードの実行が止まったわけではないと思うのですが、いかんせん知識不足の私には対処法が思いつきません…。 誰か対処法について気が付く点等ありましたらご教授願います。

  • Jquery,JSON,Ajax,PHP連携

    プログラミング初心者です。 教えてください。 最近Webのトレンドとして使われている言語で Jquery,JSON,Ajax,PHPなどがありますが、それぞれどの部分の処理をしているものなのか、 また、どのように呼び出して連携させるのか、実際のサンプルなど使った図解でわかりやすいものがあったら教えていただけますでしょうか。 よろしくお願いします。

専門家に質問してみよう