Ajax 住所検索システム

ファイル構成

AddGet.php 住所取得用 js
class.php クラスファイル
css.css スタイルシート(index.php用)
loading.gif ローディング画像
prototype.js Ajaxライブラリ
config.php MySQL DB設定ファイル
index.php 住所取得フォームサンプル
xml.php XMLファイル読み込み用

 

使用ライブラリ/データ

prototype.js http://www.prototypejs.org/
prototype.js ライセンスに関して MT-License
(和) http://sourceforge.jp/projects/op......
(原) http://opensource.org/licenses.....
住所データ (ゆうびんホームページ様) http://www.post.japanpost.jp/zipcode......

システム概要

住所検索システムはAjax非同期通信を利用し、ページのリロード無しで郵便番号から都道府県住所を取得するPHPスクリプトです。一度データベースをセットアップするだけで、ライブラリーの読み込みとフォームタグの簡単な調整のみで複数ドメインから利用する事が可能となります。

セットアップに関して

Ajax住所検索システムは、住所データを検索するシステムと取得するフォームの2つに分けて考えて下さい。

ファイルのアップロード

住所検索システム本体です。こちらへ入っているファイルをデータベースをセットアップするサーバーの任意のディレクトリーにアップロードして下さい。
住所取得フォーム側のファイルです。index.phpのフォームを参考に、xml.phpと一緒にサーバーの任意のディレクトリーにアップロードして下さい。
MySQLデータベースのインポートファイルです。AddServerFilesを設置したサーバーへインポートして下さい。

config.phpの編集

config.phpをエディターで開き、MySQLデータベース接続設定をして下さい。

データベースの設定

ダウンロードした住所データベース用のSQLファイル(圧縮形式)をphpMyAdmin等からインポートして下さい。12万件強ほどありますので、かなり時間が掛かります。また、サーバーによってはインポート時のタイムアウトやファイルサイズ上限を超えているケースがあります。これらに関しては対応致しかねますのでご了承下さい。

xml.phpの編集

header("Content-type: application/xml");
$url = "http://xxx.xxx.com/xxx/AddGet.php?zip=$_GET[zip]";
readfile($url);

上記部分を設置したサーバーの絶対URLに変更して下さい。ここを絶対URLにする事で、外部サーバーからのアクセスを可能にしてます。

META /FORMの設定

index.php及びsample.phpを参考にして下さい。

【JavaScriptの追加】
<script language="JavaScript" type="text/javascript" src="http://xxx.xxx.com/xxx/lib/prototype.js"></script>
<script language="JavaScript" type="text/javascript" src="
http://xxx.xxx.com/xxx/lib/AddGet.js"></script>

【FORMタグの設定】
<form name="form" id="form" method="post" action="./">
<input name="
zip1" type="text" value="" size="3" maxlength="3" />
<input name="
zip2" type="text" value="" size="4" maxlength="4" />
<input type="button" name="btnCheck" value="住所検索" onClick="Check()">
<div id="state"></div>
都道府県 <input name="area" type="text" id="area" value="" />
住所<input name="
add" type="text" id="add" value="" size="50" />

ヘッダーに外部JavaScriptタグを追加し、フォームタグを上記のように設定して下さい。stateのdivタグは、メッセージを表示する部分になります。フォームネームはjavaScript内部にも影響しますので変更出来ません。どうしても変更したい場合はAddGet.jsを修正する事で変更は可能ですが、ご自身の責任の上でカスタマイズして下さい。また、サンプルファイルはPHPですが、.cgiや.htmlでも動作します。

動作確認

全てのファイルをアップロードし、郵便番号を入力して正常に住所を取得出来る事を確認して下さい。動作しない場合は以下のURLにアクセスし、正常に住所がXMLファイルに展開されているかご確認下さい。

http://設置サーバーURL/xml.php?zip=001-0000

複数ドメインでの運用方法

住所データは郵便局のデータを、そのままデータベースにインポートしています。
http://www.post.japanpost.jp/zipcode......

全国一括のcsvファイルをインポートしています。差分ファイルは含まれていませんので、最新の住所には対応していません。最新住所で使用したい場合は、差分データをダウンロードして調整して下さい。データ更新方法などに関してはご質問されてもお答え出来ませんのでご了承下さい。