問題の構文はこちらから参照ください→ http://kinsekitei.com/prototype/sample.html
セッション関数の配列から値を取り出して、繰り返し表示をしたいのですが…*の部分のforeach構文で、カートに入ってる商品個数を$valueに代入したのですが、値が入るたびに、各購入個数に配列の値が連続して表示されてしまいます。例)1回目、1個は、1個と。2回目が3個なら、13個と全ての商品情報に表示されてしまいます。
商品に入れるたびに「その商品の購入数」を表示するにはどのようにすれば良いでしょうか?どなたかご教授いただけると助かります。よろしくお願いします。
おそらく、リンク先に記されている「以下の構文の$valueにそれぞれの購入数を代入して繰り返し表示したい。」のループ処理が間違っています。
下記のようにしてみてください。
<?php if(isset($_SESSION['cart']) && count($_SESSION['cart']) > 0){ ?> <form id="delform" action="delete.php" method="post"> <?php foreach ($_SESSION['cart'] as $product => $value) { $info = product_info($product); echo "<input type=\"checkbox\" name=\"ids[] \"value=\"".$product."\" >"; echo "<img src=\" ".$info['image01']." \" />"; echo "<div >"; echo "<h4>".$info['name']."・".$info['type']."".$info['prod_num']."".$info['shape_size']."".$info['shape']."".$info['rank']."</h4>"; echo "<br><h4>"; echo $value; echo "個 × "; echo "".cnv_currency($info['price']).""; echo "</h4></div></div><hr class=\"hr_line\">"; } ?> --以下省略--
「それぞれ」の意味を具体的に示してください。
たとえば商品AとBの購入個数が同時に変更になった場合は、どのように処理すればいいのでしょう。
具体的なサンプルはこちらを参照ください。
http://kinsekitei.com/cart/checkout.php
カートに入れた場合の商品個数の変更機能は、若輩者なので実装しておりませんです。
「それぞれ」とは、商品Aを1個とし、商品Bを3個カートに入れた場合のカートの内容を表示した場合に…
商品Aだけの場合は、
商品A 1個となりますが、私が作成したスクリプトで商品Bを3個購入した場合ですと…
------------------------
商品A 13個
商品B 13個
--------------------------
になってしまいます。これを、
-------------------------
商品A 1個
商品B 3個
-------------------------
としたいとおもっております。
$_SESSION['cart']に代入されている。商品個数を商品毎に抽出する場合は、どのようにすればよろしいでしょうか?ご教授いただけると助かります。
よろしくお願いします。
こちらから商品をカートに入れてください。
商品A
http://kinsekitei.com/stone/agate/agate_b001.php
商品B
http://kinsekitei.com/stone/amber/amber_b001.php
回答No.1の内容を大幅に加筆訂正しましたのでご確認ください。
無事に解決いたしました。これで作業も大きく前進しました。
シンプルに記述する事を心がけます。
また、ご教授いただける機会がありましたら、よろしくご指導ください。