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でそのまま出力することが可能。