/** * Page のプロセス. * * @return void */ function process() { $conn = new SC_DBconn(ZIP_DSN); $objView = new SC_SiteView(false); // 入力エラーチェック $arrErr = $this->fnErrorCheck($_GET); // 入力エラーの場合は終了 if (count($arrErr) > 0) { $this->tpl_start = "window.close();"; SC_Utils::sfDispSiteError(CUSTOMER_ERROR); } // 郵便番号検索文作成 $zipcode = $_GET['zip1'] . $_GET['zip2']; $zipcode = mb_convert_kana($zipcode, "n"); $sqlse = "SELECT state, city, town FROM mtb_zip WHERE zipcode = ?"; $data_list = $conn->getAll($sqlse, array($zipcode)); if (empty($data_list)) { $data_list = array(); } $masterData = new SC_DB_MasterData_Ex(); $arrPref = $masterData->getMasterData("mtb_pref", array("pref_id", "pref_name", "rank")); // インデックスと値を反転させる。 $arrREV_PREF = array_flip($arrPref); if (!empty($data_list)) { $this->tpl_state = isset($arrREV_PREF[$data_list[0]['state']]) ? $arrREV_PREF[$data_list[0]['state']] : ""; $this->tpl_city = isset($data_list[0]['city']) ? $data_list[0]['city'] : ""; $town = isset($data_list[0]['town']) ? $data_list[0]['town'] : ""; } else { $town = ""; } /* 総務省からダウンロードしたデータをそのままインポートすると 以下のような文字列が入っているので 対策する。 ・(1~19丁目) ・以下に掲載がない場合 */ $town = ereg_replace("(.*)\$", "", $town); $town = ereg_replace("以下に掲載がない場合", "", $town); $this->tpl_town = $town; // 郵便番号が発見された場合 if (!empty($data_list)) { $func = "fnPutAddress('" . $_GET['input1'] . "','" . $_GET['input2'] . "');"; $this->tpl_onload = "{$func}"; $this->tpl_start = "window.close();"; } else { $this->tpl_message = "該当する住所が見つかりませんでした。"; } /* ページの表示 */ $objView->assignobj($this); $objView->display("input_zip.tpl"); }
function lfGetAddress($zipcode) { global $arrPref; $conn = new SC_DBconn(ZIP_DSN); // 郵便番号検索文作成 $zipcode = mb_convert_kana($zipcode, "n"); $sqlse = "SELECT state, city, town FROM mtb_zip WHERE zipcode = ?"; $data_list = $conn->getAll($sqlse, array($zipcode)); // インデックスと値を反転させる。 $arrREV_PREF = array_flip($arrPref); /* 総務省からダウンロードしたデータをそのままインポートすると 以下のような文字列が入っているので 対策する。 ・(1・19丁目) ・以下に掲載がない場合 */ $town = $data_list[0]['town']; $town = ereg_replace("(.*)\$", "", $town); $town = ereg_replace("以下に掲載がない場合", "", $town); $data_list[0]['town'] = $town; $data_list[0]['state'] = $arrREV_PREF[$data_list[0]['state']]; return $data_list; }