Ignore:
Timestamp:
2012/03/26 19:11:14 (9 years ago)
Author:
pingpong
Message:

#1514 モバイル> 郵便番号による住所入力機能 の対応

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_12-dev/data/class/pages/entry/LC_Page_Entry.php

    r21596 r21679  
    9797        switch ($this->getMode()) { 
    9898            case 'confirm': 
     99                if(isset($_POST['submit_address'])){ 
     100                    // 入力エラーチェック 
     101                    $this->arrErr = $this->fnErrorCheck($_POST); 
     102                    // 入力エラーの場合は終了 
     103                    if (count($this->arrErr) == 0) { 
     104                        // 郵便番号検索文作成 
     105                        $zipcode = $_POST['zip01'] . $_POST['zip02']; 
     106 
     107                        // 郵便番号検索 
     108                        $arrAdsList = SC_Utils_Ex::sfGetAddress($zipcode); 
     109     
     110                        // 郵便番号が発見された場合 
     111                        if (!empty($arrAdsList)) { 
     112                            $data['pref'] = $arrAdsList[0]['state']; 
     113                            $data['addr01'] = $arrAdsList[0]['city']. $arrAdsList[0]['town']; 
     114                $objFormParam->setParam($data); 
     115 
     116                            // 該当無し 
     117                        } else { 
     118                            $this->arrErr['zip01'] = '※該当する住所が見つかりませんでした。<br>'; 
     119                        } 
     120                    } 
     121            $this->arrForm  = $objFormParam->getHashArray(); 
     122            break; 
     123        } 
     124 
    99125                //-- 確認 
    100126                $this->arrErr = SC_Helper_Customer_Ex::sfCustomerEntryErrorCheck($objFormParam); 
     
    276302        return true; 
    277303    } 
     304 
     305    /** 
     306     * 入力エラーのチェック. 
     307     * 
     308     * @param array $arrRequest リクエスト値($_GET) 
     309     * @return array $arrErr エラーメッセージ配列 
     310     */ 
     311    function fnErrorCheck($arrRequest) { 
     312        // パラメーター管理クラス 
     313        $objFormParam = new SC_FormParam_Ex(); 
     314        // パラメーター情報の初期化 
     315        $objFormParam->addParam('郵便番号1', 'zip01', ZIP01_LEN, 'n', array('EXIST_CHECK', 'NUM_COUNT_CHECK', 'NUM_CHECK')); 
     316        $objFormParam->addParam('郵便番号2', 'zip02', ZIP02_LEN, 'n', array('EXIST_CHECK', 'NUM_COUNT_CHECK', 'NUM_CHECK')); 
     317        // // リクエスト値をセット 
     318    $arrData['zip01'] = $arrRequest['zip01']; 
     319    $arrData['zip02'] = $arrRequest['zip02']; 
     320        $objFormParam->setParam($arrData); 
     321        // エラーチェック 
     322        $arrErr = $objFormParam->checkError(); 
     323        // 親ウィンドウの戻り値を格納するinputタグのnameのエラーチェック 
     324        if (!$this->lfInputNameCheck($addData['zip01'])) { 
     325            $arrErr['zip01'] = '※ 入力形式が不正です。<br />'; 
     326        } 
     327        if (!$this->lfInputNameCheck($arrdata['zip02'])) { 
     328            $arrErr['zip02'] = '※ 入力形式が不正です。<br />'; 
     329        } 
     330 
     331        return $arrErr; 
     332    } 
     333 
     334    /** 
     335     * エラーチェック. 
     336     * 
     337     * @param string $value 
     338     * @return エラーなし:true エラー:false 
     339     */ 
     340    function lfInputNameCheck($value) { 
     341        // 半角英数字と_(アンダーバー), []以外の文字を使用していたらエラー 
     342        if (strlen($value) > 0 && !preg_match("/^[a-zA-Z0-9_\[\]]+$/", $value)) { 
     343            return false; 
     344        } 
     345 
     346        return true; 
     347    } 
    278348} 
Note: See TracChangeset for help on using the changeset viewer.