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

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

Location:
branches/version-2_12-dev/data
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_12-dev/data/Smarty/templates/admin/products/category.tpl

    r21539 r21679  
    5656 
    5757            <!--{* スペース繰り返し *}--> 
    58             <!--{section name=n loop=$level}-->  <!--{/section}--> 
     58            <!--{section name=n loop=$level}-->  1<!--{/section}--> 
    5959 
    6060            <!--{* カテゴリ名表示 *}--> 
  • branches/version-2_12-dev/data/Smarty/templates/mobile/entry/index.tpl

    r21537 r21679  
    7676        &nbsp;-&nbsp; 
    7777        <input size="<!--{$size2}-->" type="text" name="zip02" value="<!--{if $arrForm.zip02 == ""}--><!--{$arrOtherDeliv.zip02|h}--><!--{else}--><!--{$arrForm.zip02|h}--><!--{/if}-->" maxlength="<!--{$smarty.const.ZIP02_LEN}-->" istyle="4"><br> 
     78        <input type="submit" name="submit_address" value="自動住所入力"><br> 
     79    郵便番号を入力後、クリックしてください。<br> 
    7880 
    7981        ●都道府県<font color="#FF0000"> *</font><br> 
  • branches/version-2_12-dev/data/Smarty/templates/mobile/mypage/change.tpl

    r21537 r21679  
    7575        &nbsp;-&nbsp; 
    7676        <input size="<!--{$size2}-->" type="text" name="zip02" value="<!--{if $arrForm.zip02 == ""}--><!--{$arrOtherDeliv.zip02|h}--><!--{else}--><!--{$arrForm.zip02|h}--><!--{/if}-->" maxlength="<!--{$smarty.const.ZIP02_LEN}-->" istyle="4"><br> 
     77        <input type="submit" name="submit_address" value="自動住所入力"><br> 
     78    郵便番号を入力後、クリックしてください。<br> 
    7779 
    7880        【都道府県】<font color="#FF0000">※</font><br> 
  • 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} 
  • branches/version-2_12-dev/data/class/pages/mypage/LC_Page_Mypage_Change.php

    r21596 r21679  
    9696            // 確認 
    9797            case 'confirm': 
     98                if(isset($_POST['submit_address'])){ 
     99                    // 入力エラーチェック 
     100                    $this->arrErr = $this->fnErrorCheck($_POST); 
     101                    // 入力エラーの場合は終了 
     102                    if (count($this->arrErr) == 0) { 
     103                        // 郵便番号検索文作成 
     104                        $zipcode = $_POST['zip01'] . $_POST['zip02']; 
     105 
     106                        // 郵便番号検索 
     107                        $arrAdsList = SC_Utils_Ex::sfGetAddress($zipcode); 
     108     
     109                        // 郵便番号が発見された場合 
     110                        if (!empty($arrAdsList)) { 
     111                            $data['pref'] = $arrAdsList[0]['state']; 
     112                            $data['addr01'] = $arrAdsList[0]['city']. $arrAdsList[0]['town']; 
     113                $objFormParam->setParam($data); 
     114 
     115                            // 該当無し 
     116                        } else { 
     117                            $this->arrErr['zip01'] = '※該当する住所が見つかりませんでした。<br>'; 
     118                        } 
     119                    } 
     120            $this->arrForm  = $objFormParam->getHashArray(); 
     121            break; 
     122        } 
    98123                $this->arrErr = SC_Helper_Customer_Ex::sfCustomerMypageErrorCheck($objFormParam); 
    99124                $this->arrForm = $objFormParam->getHashArray(); 
     
    164189        SC_Helper_Customer_Ex::sfEditCustomerData($sqlval, $customer_id); 
    165190    } 
     191 
     192    /** 
     193     * 入力エラーのチェック. 
     194     * 
     195     * @param array $arrRequest リクエスト値($_GET) 
     196     * @return array $arrErr エラーメッセージ配列 
     197     */ 
     198    function fnErrorCheck($arrRequest) { 
     199        // パラメーター管理クラス 
     200        $objFormParam = new SC_FormParam_Ex(); 
     201        // パラメーター情報の初期化 
     202        $objFormParam->addParam('郵便番号1', 'zip01', ZIP01_LEN, 'n', array('EXIST_CHECK', 'NUM_COUNT_CHECK', 'NUM_CHECK')); 
     203        $objFormParam->addParam('郵便番号2', 'zip02', ZIP02_LEN, 'n', array('EXIST_CHECK', 'NUM_COUNT_CHECK', 'NUM_CHECK')); 
     204        // // リクエスト値をセット 
     205    $arrData['zip01'] = $arrRequest['zip01']; 
     206    $arrData['zip02'] = $arrRequest['zip02']; 
     207        $objFormParam->setParam($arrData); 
     208        // エラーチェック 
     209        $arrErr = $objFormParam->checkError(); 
     210        // 親ウィンドウの戻り値を格納するinputタグのnameのエラーチェック 
     211        if (!$this->lfInputNameCheck($addData['zip01'])) { 
     212            $arrErr['zip01'] = '※ 入力形式が不正です。<br />'; 
     213        } 
     214        if (!$this->lfInputNameCheck($arrdata['zip02'])) { 
     215            $arrErr['zip02'] = '※ 入力形式が不正です。<br />'; 
     216        } 
     217 
     218        return $arrErr; 
     219    } 
     220 
     221    /** 
     222     * エラーチェック. 
     223     * 
     224     * @param string $value 
     225     * @return エラーなし:true エラー:false 
     226     */ 
     227    function lfInputNameCheck($value) { 
     228        // 半角英数字と_(アンダーバー), []以外の文字を使用していたらエラー 
     229        if (strlen($value) > 0 && !preg_match("/^[a-zA-Z0-9_\[\]]+$/", $value)) { 
     230            return false; 
     231        } 
     232 
     233        return true; 
     234    } 
    166235} 
Note: See TracChangeset for help on using the changeset viewer.