バージョン選択

フォーラム

メニュー

オンライン状況

47 人のユーザが現在オンラインです。 (36 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 47
もっと...

サイト内検索

質問 > フロント機能 > 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()処理について
引用:

huji100sさんは書きました:

そこで質問なのですが、2.4.4系の94行目〜105行目で、数量変更処理を行った後、
SC_Utils_Ex::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 様

ご回答誠にありがとうございます。
非常に勉強になりました。

今後とも宜しくお願い致します。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,706名です
総投稿数は109,948件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1638
8
red
1570
9
mcontact
1285
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.