AJAXでJSONデータのやりとりを行うサンプル。
サーバー(get_json.php)に送る側のデータ(ソースコード中のjdata)は、1次元のJSONデータである。2次元以上ではだめらしい。
サーバー(get_json.php)から送られているデータもJson形式です。こちらは2次元配列からなるJSONデータを受信している。
テスト実行
Java Script
get_json.php
サーバー(get_json.php)に送る側のデータ(ソースコード中のjdata)は、1次元のJSONデータである。2次元以上ではだめらしい。
サーバー(get_json.php)から送られているデータもJson形式です。こちらは2次元配列からなるJSONデータを受信している。
テスト実行
Java Script
//PHPに非同期通信で送るJSONデータ。1次元配列しか送れず) var jdata={names: '源頼朝',contry: '鎌倉',year: '1192'}; $.ajax({ type: "POST", url: 'get_json.php', data: jdata, cache: false, async : true, dataType: "json", success: function( data ) { //▼非同期通信成功時の処理。パラメータのdataはjson形式のデータである。 $.each(data,function( key, value ) { $('#xxx1').append(key + '=>' + value.names + ' | ' + value.contry + ' | ' + value.year+'
' ); }); }, error: function( data ) { alert("ajax失敗"); } });
get_json.php
header("Access-Control-Allow-Origin:*");//クロスドメイン通信を許可する。 //POSTからいくつかの情報を取得。 $names=$_POST["names"]; $contry=$_POST["contry"]; $year=$_POST["year"]; //サンプルデータを作成。 for($i=0;$i<4;$i++){ $ent["names"]=$names.$i; $ent["contry"]=$contry; $ent["year"]=$year; $data[$i]=$ent;; } //☆JSONエンコードと出力。 $jdt=json_encode($data);//PHP配列をJSON形式にエンコードする。 echo $jdt;//JSON形式のデータはechoでそのまま出力することが可能。