Ajaxで郵便番号検索
このサイトを見て、僕もajaxやってみようと思い会社のマシンでajaxで郵便番号検索をやってみることにした。
1.郵便番号データをもらってくる
贅沢に全国一括を落とす。
2.MySQLに「yubin」テーブルを作成
3.1で落としたcsvデータをなんとかして「yubin」テーブルへ作成
phpMyAdminなどで~。
4.HTMLとjavascriptは上記サイト様から借用させて頂きました。
HTMLの変更箇所は、エンコード部分
前:
後:
ajaxzip.jsの変更箇所は、サーバ側スクリプト呼出部分
前:xmlHttp.open('GET', 'ajaxzip.cgi?z=' + escape(zip), true);
後:xmlHttp.open('GET', 'xmlHttp.php?z=' + escape(zip), true);
5.サーバサイドの郵便番号検索のPHP(xmlHttp.php)は
6.でもうごかないんだが ...orz
一応、サーバからXMLを取得してはこれるんだけど、エンコードがミスってるようで、文字化けを起こしている。。
なんかXMLはUTF8かUTF16のUnicodeが基本らしく、それ以外の文字コードを使うときは「encoding=」で指定するらしいんだけど、どうにもだめ。
これじゃだめなのぉ??
ちゃーんと基礎を勉強しないとな。
1.郵便番号データをもらってくる
贅沢に全国一括を落とす。
2.MySQLに「yubin」テーブルを作成
CREATE TABLE `yubin` ( `jiscode` int(5) default NULL, `old` varchar(5) default NULL, `new` varchar(7) default NULL, `fuken_kana` varchar(50) default NULL, `si_kana` varchar(50) default NULL, `mati_kana` varchar(100) default NULL, `fuken` varchar(100) default NULL, `si` varchar(100) default NULL, `mati` varchar(100) default NULL, `a` tinyint(1) default NULL, `b` tinyint(1) default NULL, `c` tinyint(1) default NULL, `d` tinyint(1) default NULL, `e` tinyint(1) default NULL, `f` tinyint(1) default NULL ) TYPE=MyISAM;
3.1で落としたcsvデータをなんとかして「yubin」テーブルへ作成
phpMyAdminなどで~。
4.HTMLとjavascriptは上記サイト様から借用させて頂きました。
HTMLの変更箇所は、エンコード部分
前:
<?xml version="1.0" encoding="EUC-JP"?>
後:
<?xml version="1.0" encoding="Shift_JIS"?>
ajaxzip.jsの変更箇所は、サーバ側スクリプト呼出部分
前:xmlHttp.open('GET', 'ajaxzip.cgi?z=' + escape(zip), true);
後:xmlHttp.open('GET', 'xmlHttp.php?z=' + escape(zip), true);
5.サーバサイドの郵便番号検索のPHP(xmlHttp.php)は
<?php require("DBconf.php"); // データベースへの接続 $db_link = mysql_connect('host', 'user', 'pass'); $db = "work"; $sql = "select * from yubin where new like '" . $_GET['z'] . "%'"; $rs = mysql_db_query($db,$sql); $rows = mysql_num_rows($rs); if ($rows > 0) { $row=mysql_fetch_array($rs); print "Content-Type: text/xml\n\n"; print ("<?xml encoding=\"Shift_JIS\" version=\"1.0\" standalone=\"yes\"?><zip><pref>" . $row["fuken"] . "</pref><city>" . $row["si"] . "</city><ville>" . $row["mati"] . "</ville></zip>"); } mysql_free_result($rs); mysql_close($db_link); ?>
6.でもうごかないんだが ...orz
一応、サーバからXMLを取得してはこれるんだけど、エンコードがミスってるようで、文字化けを起こしている。。
なんかXMLはUTF8かUTF16のUnicodeが基本らしく、それ以外の文字コードを使うときは「encoding=」で指定するらしいんだけど、どうにもだめ。
<?xml version='1.0' encoding='Shift_JIS'?>
これじゃだめなのぉ??
ちゃーんと基礎を勉強しないとな。