- 締切済み
ショッピングカートの作成
今ショッピングカートを作成しようとしていて商品サンプルがいくつかあり「カートへ」ボタンを押すと精算ページへ飛び精算を行うというプログラムをつくっているのですがいくつかのサンプルでどれを選んでも一番上のサンプルの精算しか行えません。どうすれば解決できますでしょうか?よろしくお願いします。 ショッピングカートのプログラムの一部です。 while($row = mysql_fetch_row($result)){; $code = $row['0']; print "<form method='post' action='cart_syohin2.php'><tr>"; print "<td rowspan='2'>"; if (file_exists("cart_image/$code.jpg")) print "<img src='cart_image/$code.jpg' border='0'>"; print "</td>"; print "<td rowspan='3'>{$row['3']}</td>"; print "<td nowrap>{$row['2']}円</td></tr>"; print "<tr><td nowrap><input type='text' name='num' size='3'>個</td></tr>"; print "<tr><td>{$row['1']}</td>"; print "<td><input type='hidden' name='code' value='$code'><input type='submit' name='cart' value='カートへ'>"; print "</td>"; print "</tr></form>\n"; }
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- yambejp
- ベストアンサー率51% (3827/7415)
あ、ごめんなさい$code = $row['0'];で代入してますね。 勘違いです。 とりあえずサーバーにきちんとデータがおくられているか cart_syohin2.phpに <?PHP print_r($_REQUEST); ?> としてデバッグしてみてください。 $codeがきちんとわたっているなら、受け取り側の問題かもしれません
- yambejp
- ベストアンサー率51% (3827/7415)
<input type='hidden' name='code' value='$code'> の箇所で$codeを返しているからでは? 個別データでしたらおそらく <input type='hidden' name='code' value='{$row['4']}'> とか、DBから得たデータを渡しますよね?
補足
そうですね。DBからのデータを取得させて実行させようとしてます。
補足
<?PHP print_r($_REQUEST); ?>を実行してみたところ 一番上の商品カートに1個入れたら Array ( [num] => 1[code] => 1[cart] => カートへ [PHPSESSID] => 8l5kjgg7gk9ea86avodq6jn0d4 ) 二番目の商品カートに1個入れたら Array ( [num] => 1[code] => 1[cart] => カートへ [PHPSESSID] => 8l5kjgg7gk9ea86avodq6jn0d4 )となりました、 これは受け取り側に問題があるのかもしれませんね。 精算のページは $sum = 0; foreach($_SESSION['cart'] as $row => $num) { $result = mysql_query('SELECT code,name,tanka,explanation FROM cart_syohin2'); $row = mysql_fetch_row($result); $ss =1.05 * $num * $row['2']; print "<tr><td>{$row['1']}</td><td>{$row['2']}円</td>"; print "<td>$num</td><td>{$ss}円</td></tr>\n"; $sum += $ss; } print "<tr><td colspan='2'> </td><td>合計</td><td>{$sum}円</td></tr>\n"; となっております。