jQueryとPHPでJSON実装
Ajaxを使用する場合同じドメイン内であれば問題ないが別ドメインでは動かない。この場合いくつか回避策はあるが今回はJSONでの実装をメモ。環境はjQueryとPHP 5.2.x。Ajaxが別ドメインで動かない理由はセキュリティ上のことであり詳細はWikipediaの「セキュリティ上の制限」参照。
jQueryでは通常のAjaxでは上記のとおり動作しないため、JSONを使用。JSONのデータを取得したらコールバック関数が実行。Webサービスなどですでに展開されているAPIを叩く程度であればこれでデータの取得は完了。
-
$.getJSON("http://www.t2-designing.com/?callback=?",
-
function(obj)
-
{
-
//callback
-
}
-
);
サーバサイドも実装する場合にはJSON形式でデータを返す。PHPでは5.2以降でJSONがデフォルトで組み込まれている。出力するには必要な値を配列に入れていきjson_encode()でさっくり変換。下記は多次元配列にデータを入れた際の簡単な例。callbackを返さないとjQueryでコールバック関数が動かない。
-
$page_meta (
-
'this_page' => 1,
-
'max_page' => 10
-
);
-
-
$posts(
-
'id' => 1
-
);
-
-
$page_meta,
-
$posts
-
);
-
-
-
echo $_GET['callback']. "(". $json. ")";
このあたりの実装方法についてはIBMのサイトにも記述されています。
JSONP によるクロスドメインの通信: 第 1 回 JSONP と jQuery を組み合わせ、強力なマッシュアップを迅速に作成する


