▽1
●
tdoi ●200ポイント ベストアンサー |
提示してもらったコードからは何をしたいか分からないので、カートのようなものをjQueryを使った場合のサンプルを書いてみました。
cart.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <script type="text/javascript" src="jquery.js"></script> <script language="JavaScript"> <!-- // 登録ボタンが押されると呼びだされる関数 function add() { var item = document.form.product.value; // cart.phpにidを渡すと、現在のカートの内容を返してくる。 // その内容でカート領域を書き換える。 $.post('cart.php', { "id": item }, function(response) { // $("#cart").empty().append(response); $('#cart').html(response); }); } --> </script> </head> <body> <form name="form"> <select name="product"> <option value="1">りんご</option> <option value="2">なし</option> <option value="3">かき</option> </select> <input type="button" value="登録" onClick="add(); return false;"/> </form> <div id="cart"> <!-- ここに現在のカートの内容がJavaScriptによって挿入される --> </div> </body> </html>
cart.php
<?php session_start(); // POSTされた商品IDの取得 $id = $_POST['id']; // セッション中にカートがあるか確認。なければ配列として作成。 if (!isset($_SESSION['cart'])) { $_SESSION['cart'] = array(); } // 既にカートにある商品は個数を追加、ない商品は1個として登録 if (!isset($_SESSION['cart'][$id])) { $_SESSION['cart'][$id] = 1; } else { $_SESSION['cart'][$id] += 1; } $itemList = array(1 => 'りんご', 2 => 'なし', 3 => 'かき'); $cart = $_SESSION['cart']; ?> <!-- カート部分の出力 --> <table> <?php foreach ($cart as $id => $count) { ?> <tr> <td><?php echo $id; ?></td> <td><?php echo $itemList[$id]; ?></td> <td><?php echo $count; ?></td> </tr> <?php } ?> </table>
基本的にこのままで動きます。上記のcart.htmlにアクセスしてもらい、セレクトボックスから商品を選んで登録を押すと、バックグラウンドでcart.phpにPOSTし情報を登録します。また結果として、カートの状態を返すので、その内容を画面下部に表示するようになってます。
簡単にはコメント残しましたが、分からない部分があればコメントなりで補足します。
何かの参考になれば。