質問 > フロント機能 > カート内での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操作レベルなので委細はマニュアルの外部から来る変数に関する事項を読むと良いでしょう。
|
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について カートセッション内で他ページ遷移しても保持されている他のデータの処理・保持・参照のコードを参考に、新しく足した値を持ち回れるように、きちんと実装しているか、実装が正しく動いているかを見るのが良いと思います。
|
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の意味と挙動を確認されては、どうでしょうか?
|
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について セットと取得を別々のメソッドに分けるのが妥当なのでは?
|
(1) 2 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |