質問 > フロント機能 > 2.4.4でのLC_Page_Cart.phpでのsfReload()処理について |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
huji100s |
投稿日時: 2013/1/28 17:18
対応状況: −−−
|
新米 登録日: 2013/1/28 居住地: 投稿: 3 |
2.4.4でのLC_Page_Cart.phpでのsfReload()処理について EC-CUBEの2.4.4のLC_Page_Cart.phpでの質問になります。
現在、2.4.4系のカートページで商品の数値入力の対応を行なっているのですが、 LC_Page_Cart.phpでエラーチェックした後、 SC_Utils_Ex::sfReload();処理が実行されてPOSTデータが初期化されるため、 エラー表示がうまくいきません。 そこで質問なのですが、2.4.4系の94行目〜105行目で、数量変更処理を行った後、 SC_Utils_Ex::sfReload();処理が実行されていますが、 この処理はなんのために実行されているのでしょうか? エラー表示のために、SC_Utils_Ex::sfReload();処理を実行せずに process()を最後まで続けてしまっても大丈夫なのでしょうか? ご教授いただければと思います。 また、SC_Utils_Ex::sfReload();を実行しなければならない場合、 エラー表示をさせるため方法等ご教授願えますでしょうか? よろしくお願いします。 以下、該当部分のソースとなります -------------------------------------------- switch($_POST['mode']) { case 'up': $objCartSess->upQuantity($_POST['cart_no']); SC_Utils_Ex::sfReload(); break; case 'down': $objCartSess->downQuantity($_POST['cart_no']); SC_Utils_Ex::sfReload(); break; case 'delete': $objCartSess->delProduct($_POST['cart_no']); SC_Utils_Ex::sfReload(); break; case 'set_quantity': $this->objFormParam->setParam($_POST); $this->objFormParam->convParam(); $this->arrErr = $this->lfCheckError(); if(count($this->arrErr) == 0) { $objCartSess->setQuantity($_POST['cart_no'],$_POST['quantity']);←変更メソッドを追加しています SC_Utils_Ex::sfReload(); }else{ $objCartSess->setQuantity($_POST['cart_no'],1);←変更メソッドを追加しています $_POST = array(); } break; |
nanasess |
投稿日時: 2013/1/28 17:38
対応状況: −−−
|
神 登録日: 2006/9/9 居住地: 投稿: 2313 |
Re: 2.4.4でのLC_Page_Cart.phpでのsfReload()処理について 引用:
POST 値で数量変更を行なった後、画面に表示する内容を初期化して、描画し直すためですね。 |
huji100s |
投稿日時: 2013/1/28 20:48
対応状況: −−−
|
新米 登録日: 2013/1/28 居住地: 投稿: 3 |
Re: 2.4.4でのLC_Page_Cart.phpでのsfReload()処理について 御回答有り難うございます。
>画面に表示する内容を初期化して、描画し直すためですね。 とのことですが、sfReloadを実行せず、 そのまま処理を続けて描画した場合、なにか問題等ありますでしょうか? POSTデータに関しては、初期化処理を行なっております。 |
nanasess |
投稿日時: 2013/1/28 21:04
対応状況: −−−
|
神 登録日: 2006/9/9 居住地: 投稿: 2313 |
Re: 2.4.4でのLC_Page_Cart.phpでのsfReload()処理について POST でそのまま処理を続けると、ブラウザのバックボタンを押した場合や、商品一覧などに戻る際に「ページの有効期限切れ」画面になったり、フォームの再送信を確認するアラートが表示される場合がありますが、対策されていますでしょうか?
その他、画面に表示される購入金額などが正常に表示されていれば問題ないと思います。 |
dkazuto |
投稿日時: 2013/1/28 21:10
対応状況: −−−
|
一人前 登録日: 2012/5/10 居住地: 投稿: 95 |
Re: 2.4.4でのLC_Page_Cart.phpでのsfReload()処理について huji100sさん
こちらは、ブラウザバック対策の機能になります。 カートページで数量を変更したあと、購入手続きに進み、 戻るボタンを押しても正常に表示されるようにするための対策です。 試しに、sfReloadをコメントアウトして、上部の操作を行なってみてください。 購入画面からブラウザから戻る際に再POSTするかのメッセージが表示され、OKを押すと数量変更も実行されてしまいます。 購入画面から戻るときに変なページが出てしまうという意見が多かったために備えられた機能かと思われます。 以上、ご参考になれば幸いです。 |
huji100s |
投稿日時: 2013/1/29 9:11
対応状況: 解決済
|
新米 登録日: 2013/1/28 居住地: 投稿: 3 |
Re: 2.4.4でのLC_Page_Cart.phpでのsfReload()処理について nanasess様
dkazuto 様 ご回答誠にありがとうございます。 非常に勉強になりました。 今後とも宜しくお願い致します。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |