バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > カート内でのPOSTについて

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ecbg
投稿日時: 2009/10/5 18:46
対応状況: −−−
仙人
登録日: 2009/2/25
居住地: 東京
投稿: 387
カート内でのPOSTについて
初歩的な質問で申し訳ありません。
カート内でPOSTした値をSC_Helper_DB.phpに渡したいのですが、
LC_Page_Cart.phpには渡るのですが、SC_Helper_DB.phpに渡ってくれません。

ご存知の方どうか教えてください!
kishik
投稿日時: 2009/10/5 19:19
対応状況: −−−
仙人
登録日: 2009/4/3
居住地: 東京
投稿: 382
Re: カート内でのPOSTについて
具体的にはどの部分を指しているのでしょうか?


-----
カスタマイズ承ります
http://ec-cube-mall.jp/
http://ec-cube.ec-orange2.jp/
http://wiki.ec-orange2.jp/
ecbg
投稿日時: 2009/10/5 19:26
対応状況: −−−
仙人
登録日: 2009/2/25
居住地: 東京
投稿: 387
Re: カート内でのPOSTについて
説明不足ですいません。

適当な場所にinputタブでtextフォームを作って、そこに入力した文字列を「送信」することでPOSTにデータを格納いたしました。
その文字列をSC_Helper_DB.php内において条件分岐のための値として使用したいのですが、この説明で分りますでしょうか?
AMUAMU
投稿日時: 2009/10/5 19:57
対応状況: −−−
登録日: 2009/5/2
居住地: 東京都
投稿: 2712
Re: カート内でのPOSTについて
正しいのは最初に受け付けたクラスで加工をしてSC_helper_DB.php内のメソッド呼び出し時に必要に応じて引数として渡すのが良いでしょう。

推奨されないが簡単な方法は$_POSTから直接取る形。PHP操作レベルなので委細はマニュアルの外部から来る変数に関する事項を読むと良いでしょう。


----------------
EC-CUBE公式エヴァンジェリスト
EC-CUBEインテグレートパートナー (株)スピリット・オブ
移転・拡張・高速化・問題解決
各種カスタマイズ・支援依頼承ります。

[url=h

ecbg
投稿日時: 2009/10/7 13:53
対応状況: −−−
仙人
登録日: 2009/2/25
居住地: 東京
投稿: 387
Re: カート内でのPOSTについて
ご返信有難うございます。

SC_CartSession.php内にfunction TextData()を作成し、
そこへcart/index.tplから$_POSTでテキストデータを渡して、
SC_Helper_DB.php内で
$objCart = new SC_CartSession()
$text = $objCartSess->TextData();
としてダンプすると、
カートページではSC_Helper_DB.phpに「$text」がしっかり渡るのですが、その後ページ推移して、shopping/confirm.phpでは
値が空になってしまいます。

おそらく確認ページでSC_CartSession.php内のfunction TextData()を再度読み込んだときに$_POSTが空だからだと思うのですが、$_POSTの値を保持しておく方法等アドバイス頂けないでしょうか?
AMUAMU
投稿日時: 2009/10/7 14:51
対応状況: −−−
登録日: 2009/5/2
居住地: 東京都
投稿: 2712
Re: カート内でのPOSTについて
カートセッション内で他ページ遷移しても保持されている他のデータの処理・保持・参照のコードを参考に、新しく足した値を持ち回れるように、きちんと実装しているか、実装が正しく動いているかを見るのが良いと思います。


----------------
EC-CUBE公式エヴァンジェリスト
EC-CUBEインテグレートパートナー (株)スピリット・オブ
移転・拡張・高速化・問題解決
各種カスタマイズ・支援依頼承ります。

[url=h

ecbg
投稿日時: 2009/10/7 15:23
対応状況: −−−
仙人
登録日: 2009/2/25
居住地: 東京
投稿: 387
Re: カート内でのPOSTについて
返信有難うございます。

先ほどから保持されているデータを元にいろいろ試してはいたのですが、カートページから離れて、SC_CartSession.phpの$_POSTが空になった途端に値が消えてしまいます。

例えば、SC_CartSession.phpのgetTotalQuantity()は以下のように$_SESSIONを使っているのですが、今回は$_POSTで渡す値が「送信」したときにしか存在していないので、保持し続ける条件がなかなか思い浮かびません・・・
// カート内商品数の合計
function getTotalQuantity() {
$total = 0;
$max = $this->getMax();
for($i = 0; $i <= $max; $i++) {
$total+= $_SESSION[$this->key][$i]['quantity'];
}
return $total;
}

良いアイデアをお持ちでしたらお力貸してください!
AMUAMU
投稿日時: 2009/10/7 15:55
対応状況: −−−
登録日: 2009/5/2
居住地: 東京都
投稿: 2712
Re: カート内でのPOSTについて
意味がいまいち分からないのですが
当たり前のことですがPOST変数は送信したときしか存在しないと思いますが・・・?

引用:
カートページではSC_Helper_DB.phpに「$text」がしっかり渡るのですが、その後ページ推移して、shopping/confirm.phpでは
値が空になってしまいます。

とあるのでページ遷移してますよね?遷移しているならSESSIONか、なにか入れないとダメかと思いますけど・・・?

PHPのマニュアルにてSESSIONとPOSTの意味と挙動を確認されては、どうでしょうか?


----------------
EC-CUBE公式エヴァンジェリスト
EC-CUBEインテグレートパートナー (株)スピリット・オブ
移転・拡張・高速化・問題解決
各種カスタマイズ・支援依頼承ります。

[url=h

ecbg
投稿日時: 2009/10/7 16:09
対応状況: −−−
仙人
登録日: 2009/2/25
居住地: 東京
投稿: 387
Re: カート内でのPOSTについて
説明が曖昧で申し訳ありませんでした。

確かにPOSTで受け取った値をSESSION変数に格納しているのですが、再度「カートページの更新」や「買い物確認ページ」でSC_CartSession.phpのTextData()が読まれたときに空の$_POSTでSESSION変数も上書きされてしまうようです。
そのため、空のときは既にSESSIONに入っている値を上書きしないよう色々と条件を入れてみたのですが、おそらくそこが上手く機能していないようです。

少し深い内容になってしまったので、もう少しSESSIONとPOSTについて調べて頑張ってみます!

こんな感じでもっと簡単にテキストくらい渡せるんじゃない?って手法をご存知の方いらっしゃいましたら、ご教授下さい。
seasoft
投稿日時: 2009/10/7 16:33
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: カート内でのPOSTについて
セットと取得を別々のメソッドに分けるのが妥当なのでは?


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は89,328名です
総投稿数は110,082件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1652
8
red
1570
9
mcontact
1304
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.