Ajaxで住所の変更をしてみる
ずいぶんと時間が空いたが、Ajaxで住所の変更をしてみる。
参考URL
- http://web.sfc.keio.ac.jp/~shokai/archives/2006/07/json.html
- http://www.imgsrc.co.jp/~kuriyama/prototype/prototype.js.html
- 20. PHPからJSON作成を扱う | 日経 xTECH(クロステック)
JSON形式のデータの作成
JSON形式のデータを作成する方法は、以下の二つの方法が一般的。
- "PEAR::Services_JSON"を使用する
- "Zend/Json.php"を使用する
- 拡張モジュールのphp-jsonモジュールを使用する
以下、サンプルコード
<? require_once "./JSON.php"; $tdhk = db_sts_list($_GET['tdhk']); foreach ($tdhk as $key => $val) { $arr[] = array( "code" => $key, "name" => $val ); } $json = new Services_JSON; $encode = $json->encode($arr); header("Content-Type: text/javascript; charset=utf-8"); echo $encode; ?>
Ajax側の作成
prototype.jsを使用してAjaxで都道府県コードを上記のコードに渡す。
function get_tdhk(httpObj) { $('sts').innerHTML = ""; var data = eval(httpObj.responseText); for(var i = 0; i < data.length; i++){ var opt = document.createElement('option'); opt.innerHTML = data[i].name; $('sts').appendChild(opt); } } function ajaxReq(){ var myAjax = new Ajax.Request( "./create.php", { method: 'get', parameters: 'tdhk=' + $F('tdhk'), onComplete: get_tdhk }); }