今回は jQuery で用意されている Ajax 関数を使って PHP からデータを取得する方法について説明します。
この例は、よくあるのですが、マスタテーブルからコードを指定しその内容を表示する場合に使う方法です。 (例えば、郵便番号を入力し対応する都道府県名、市町村名、住所を表示する等です。)
先ずは Ajax 関数の使い方ですが、以下の様な感じです。
<ajax関数の例> $.ajax({ type: "POST", url: "hoge.php", data: { data1: "1111", data2: "222" , ... } }).done(function(data){ // 正常処理 }).fail(function() { // 取得エラー }).always(function() { // 後処理 }); <パラメータ> ・type:リクエストのタイプ("POST"または"GET")を指定します。 ・url :リクエストを送信するURLを指定します。 ・data:サーバーへ送信するデータを指定します。 :{ キー値1: データ値1, キー値2: データ値2, キー値3: データ値3, ... } <メソッド> ・done(function(data){}:ajax 処理が成功した場合に呼ばれる関数宣言。 ・fail(function(){} :ajax 処理でエラーが発生した場合に呼ばれる関数宣言。 ・always(function(){} :ajax 処理の最後に呼ばれる関数宣言。
HTML ファイル側のソースですが以下の様になります。
■Ajaxを使いPHPからデータを取得するHTMLファイル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | < html > < head > < meta charset = "utf-8" > < title >test ajax</ title > < script type = "text/javascript" > //Ajax関数 function getData() { // マスタデータの取得 $.ajax({ type: "POST" , url: "./ajax1.php" , data: { id: $("#id").val() } }).done(function(res){ // ajaxがOK $("#msg").text(JSON.parse(res)); }).fail(function() { // 取得エラー alert('取得エラー'); }).always(function() { // 後処理(処理することが在れば) }); return false; } </ script > </ head > < body > < h2 >test ajax json</ h2 > ID:< input type = "text" id = "id" size = "10" maxlength = "10" />< br /> < p id = "msg" >テストメッセージ</ p > < button onclick = "getData();" >Ajax</ button > </ body > </ html > |
外部PHPファイル ajax1.php がこのHTMLファイルと同じディレクトリに存在することにします。
■外部PHPファイル ajax1.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?php // 処理モードの取得 $id = -1; if (isset( $_POST [ "id" ]) == true && $_POST [ "id" ] != "" ) { $id = intval ( $_POST [ "id" ]); } // マスタ風の仮のデータ $arrData = array ( 0 => "@@@@@@" ,1 => "AAAAAA" ,2 => "BBBB" ,3 => "CCCCCCCC" ); $strRet = "" ; if (0 <= $id && $id <= 3) { $strRet = $arrData [ $id ]; } // 結果を返す echo (json_encode( $strRet )); |
このPHPファイルは POST された id を取得し、その値をキーとして、マスタデータの仮の配列データから 文字列を取得します。 その文字列を JSON データに変換して echo 関数で返してやります。
返されたデータは、HTML側の done 関数の引数に渡されます。 そこでその引数の値を JSON データから逆変換し、HTMLのタグに設定してやります。
実際にHTMLファイルをブラウザで表示し、IDを入力しボタンを押下すれば対応するデータが表示されると思います。
JavaScriptによるWeb開発のための、究極のレシピ集。 制作の現場で使われる定番テクニックからプロ技まで集めたそうです。
関連する記事
⇒JavaScript jQueryでAjaxを使いPHPからデータを取得する方法⇒JavaScript jQueryでAjaxを使いPHPからデータを取得する方法その2(郵便番号からの住所取得)
⇒JavaScript jQueryでAjaxを使いPHPからデータを取得する方法その3(外部公開APIによる郵便番号からの住所取得)
⇒JavaScript jQueryでAjaxを使いブロック領域を表示・非表示にする方法(css()メソッド、"display"属性)
⇒JavaScript jQueryでAjaxの逐次処理を jQuery.when で行う方法
⇒JavaScript jQueryでAjaxを使いJSONファイルから一連のデータを設定する方法 (select, ul)
コメント