Changeset 18358


Ignore:
Timestamp:
2009/10/30 20:14:22 (14 years ago)
Author:
satou
Message:

#562 支払方法選択画面でリロードしないように改良(jQuery×AJAX)

Location:
branches/comu-ver2
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/comu-ver2/data/Smarty/templates/default/shopping/payment.tpl

    r18311 r18358  
    4646                    <!--{section name=cnt loop=$arrPayment}--> 
    4747                    <tr> 
    48                         <td class="centertd"><input type="radio" id="pay_<!--{$smarty.section.cnt.iteration}-->" name="<!--{$key}-->" onclick="fnModeSubmit('payment', '', '');" value="<!--{$arrPayment[cnt].payment_id}-->" style="<!--{$arrErr[$key]|sfGetErrorColor}-->" <!--{$arrPayment[cnt].payment_id|sfGetChecked:$arrForm[$key].value}--> /> 
     48                        <td class="centertd"><input type="radio" id="pay_<!--{$smarty.section.cnt.iteration}-->" name="<!--{$key}-->" onclick="fnSetDelivTime('payment','<!--{$key}-->','deliv_time_id');" value="<!--{$arrPayment[cnt].payment_id}-->" style="<!--{$arrErr[$key]|sfGetErrorColor}-->" <!--{$arrPayment[cnt].payment_id|sfGetChecked:$arrForm[$key].value}--> /> 
    4949                        </td> 
    5050                        <td> 
     
    8383                    <span class="attention"><!--{$arrErr[$key]}--></span> 
    8484                    <em>お届け時間:</em> 
    85                     <select name="<!--{$key}-->" style="<!--{$arrErr[$key]|sfGetErrorColor}-->"> 
     85                    <select name="<!--{$key}-->" id="<!--{$key}-->" style="<!--{$arrErr[$key]|sfGetErrorColor}-->"> 
    8686                        <option value="" selected="">指定なし</option> 
    8787                        <!--{html_options options=$arrDelivTime selected=$arrForm[$key].value}--> 
  • branches/comu-ver2/data/class/pages/shopping/LC_Page_Shopping_Payment.php

    r18311 r18358  
    2424// {{{ requires 
    2525require_once(CLASS_PATH . "pages/LC_Page.php"); 
     26require_once(DATA_PATH . 'module/Services/JSON.php'); 
    2627 
    2728/** 
     
    3031 * @package Page 
    3132 * @author LOCKON CO.,LTD. 
    32  * @version $Id:LC_Page_Shopping_Payment.php 15532 2007-08-31 14:39:46Z nanasess $ 
     33 * @version $Id:LC_Page_Shopping_Payment.php 15532 2009-10-30 20:04:46Z satou $ 
    3334 */ 
    3435class LC_Page_Shopping_Payment extends LC_Page { 
     
    136137        // 支払い方法が変更された場合 
    137138        case 'payment': 
    138             // ここのbreakは、意味があるので外さないで下さい。 
     139            // 配送時間の配列を生成 
     140            $this->lfSetDelivTime(); 
    139141            break; 
    140142        default: 
     
    150152        // 支払い方法の画像があるなしを取得($img_show true:ある false:なし) 
    151153        $this->img_show = $this->lfGetImgShow($this->arrPayment); 
    152         // お届け時間の取得 
    153         $arrRet = $objDb->sfGetDelivTime($this->objFormParam->getValue('payment_id')); 
    154         $this->arrDelivTime = SC_Utils_Ex::sfArrKeyValue($arrRet, 'time_id', 'deliv_time'); 
    155  
    156154        // お届け日一覧の取得 
    157155        $this->arrDelivDate = $this->lfGetDelivDate(); 
     
    208206            SC_Utils_Ex::sfDispSiteError(SOLD_OUT, '', true); 
    209207        } 
    210          
     208 
    211209        $this->arrData = $objDb->sfTotalConfirm(array(), $this, $objCartSess); 
    212210 
     
    370368            $_POST['use_point'] = "0"; 
    371369        } 
    372          
     370 
    373371        if (!isset($_POST['point_check'])) $_POST['point_check'] = ""; 
    374          
     372 
    375373        if($_POST['point_check'] == '1') { 
    376374            $objErr->doFunc(array("ポイントを使用する", "point_check"), array("EXIST_CHECK")); 
     
    419417    function lfRegistData($uniqid) { 
    420418        $objDb = new SC_Helper_DB_Ex(); 
    421          
     419 
    422420        $sqlval = $this->objFormParam->getDbArray(); 
    423421        // 登録データの作成 
     
    526524    //一時受注テーブルからの情報を格納する 
    527525    function lfSetOrderTempData($uniqid) { 
    528  
    529526        $objQuery = new SC_Query(); 
    530527        $col = "payment_id, use_point, deliv_time_id, message, point_check, deliv_date"; 
     
    548545        return $img_show; 
    549546    } 
     547 
     548    /* 配送時間の配列を生成 */ 
     549    function lfSetDelivTime() { 
     550        $objDb = new SC_Helper_DB_Ex(); 
     551        $objJson = new Services_JSON; 
     552 
     553        // 配送時間の取得 
     554        $arrRet = $objDb->sfGetDelivTime($this->objFormParam->getValue('payment_id')); 
     555        // JSONエンコード 
     556        echo $objJson->encode($arrRet); 
     557        exit; 
     558    } 
    550559} 
    551560?> 
  • branches/comu-ver2/html/user_data/packages/default/js/site.js

    r18357 r18358  
    382382} 
    383383 
     384// お届け時間のリアル反映 
     385function fnSetDelivTime(mode, r_key, s_id) { 
     386    var f_key, f_val; 
     387    var f_cnt = document.form1.length; 
     388    var f_data = "mode=" + mode; 
     389 
     390    // formデータの形成 
     391    for (i = 0; i < f_cnt; i++) { 
     392        f_key = document.form1[i].name; 
     393        f_val = document.form1[i].value; 
     394        if (f_key != "mode") { 
     395            if (f_key == r_key) { 
     396                if (document.form1[i].checked === true) { 
     397                    f_data += "&" + f_key + "=" + f_val; 
     398                } 
     399            } else { 
     400                f_data += "&" + f_key + "=" + f_val; 
     401            } 
     402        } 
     403    } 
     404 
     405    // AJAX 
     406    $.ajax({ 
     407        type: "POST", 
     408        url: document.form1.action, 
     409        data: f_data, 
     410        dataType: "json", 
     411        success: function(data) { 
     412            var elm_s = "select#" + s_id; 
     413            var elm_o = elm_s + " option"; 
     414            $(elm_o).remove(); 
     415            $(elm_s).append($('<option>').attr({value: ""}).text("指定なし")); 
     416            for (i = 0; i < data.length; i++) { 
     417                if (data[i].time_id > 0) { 
     418                    $(elm_s).append($('<option>').attr({value: data[i].time_id}).text(data[i].deliv_time)); 
     419                    $(elm_s).width(); 
     420                } 
     421            } 
     422        } 
     423    }); 
     424} 
Note: See TracChangeset for help on using the changeset viewer.