teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

すみません。コードが抜け落ちていたようです。

2020/12/05 06:08

投稿

fk0617
fk0617

スコア10

title CHANGED
File without changes
body CHANGED
@@ -8,7 +8,174 @@
8
8
  ### 該当のソースコード
9
9
 
10
10
  ```php
11
+ <?php
12
+
13
+ require_once('functions.php');
14
+
15
+ session_start();
16
+
17
+ $name = $_SESSION['name'];
18
+
19
+ if (isset($_SESSION['id'])) {
20
+ $msg = 'こんにちは、' . h($name) . ' さん';
21
+ $link = '<a href="logout.php">ログアウト</a>';
22
+ } else {
23
+ $msg = 'ようこそZAZATOWNへ';
24
+ $login_msg = 'ログインしてください';
25
+ $link = '<a href="login.php">ログイン</a>';
26
+ }
27
+
28
+ if (isset($_POST['cartIn'])) {
29
+
30
+ unset($_SESSION['favorite'][$_POST['product_id']]);
31
+
32
+ $product_id = $_POST['product_id'];
33
+
34
+ $_SESSION['cart'][$product_id] = [
35
+ 'product_id' => $_POST['product_id'],
36
+ 'productImage' => $_POST['productImage'],
37
+ 'brandName' => $_POST['brandName'],
38
+ 'productName' => $_POST['productName'],
39
+ 'price' => $_POST['price'],
40
+ 'size' => $_POST['size'],
41
+ 'count' => $_POST['count'] + $_SESSION['cart'][$product_id]['count'],
42
+ ];
43
+ $cartmsg = "カートに入りました";
44
+ header('Location: http://192.168.33.10:8000/cart.php');
45
+
46
+ $count = $_SESSION['cart'][$product_id]['count'];
47
+ $price = $_SESSION['cart'][$product_id]['price'];
48
+ $subtotal = $price * $count;
49
+ $_SESSION['cart'][$product_id] += array('subtotal' => $subtotal);
50
+ $total = array_sum(array_column($_SESSION['cart'], 'subtotal'));
51
+ $total = number_format($total);
52
+ // $_SESSION['cart'][$product_id] += array('total' => $total);
53
+ }
54
+
55
+ if (empty($_SESSION['cart'])) {
56
+ $empty_msg = 'カートに商品が入っていません';
57
+ }
58
+
59
+ if (isset($_GET['id'])) {
60
+ // $delete = $_POST['delete'];
61
+ unset($_SESSION['cart'][$_GET['id']]);
62
+ $total = array_sum(array_column($_SESSION['cart'], 'subtotal'));
63
+ $total = number_format($total);
64
+ // $_SESSION['cart'][$product_id] += array('total' => $total);
65
+ }
66
+
67
+ $total = array_sum(array_column($_SESSION['cart'], 'subtotal'));
68
+ $total = number_format($total);
69
+
70
+ ?>
71
+
72
+ <!DOCTYPE html>
73
+ <html lang="ja">
74
+ <head>
75
+ <meta charset="utf-8">
76
+ <title>EC SITE</title>
77
+ <link rel="stylesheet" href="styles.css">
78
+ </head>
79
+ <body>
80
+ <header>
81
+ <p><?php echo $msg; ?></p>
82
+ <a href="index.php"><h1>ZAZA TOWN</h1></a>
83
+ <form action="search.php" method="GET">
84
+ <input type="search" name="search" placeholder="何かお探しですか?">
85
+ <input type="submit" name="submit" value="検索">
86
+ </form>
87
+ <?php echo $link; ?>
88
+ <a href="history.php">購入履歴</a>
89
+ <a href="favorite.php"><img src="images/image2.jpeg" alt="お気に入り" title="お気に入り"></a>
90
+ <a href="cart.php"><img src="images/image1.jpeg" alt="カート" title="カート"></a>
91
+ </header>
92
+ <p1>ZAZASALE 2020 開催中 <span>MAX90%OFF</span></p1><br>
93
+ <p><?php echo $cartmsg; ?></p>
94
+ <p><?php echo $empty_msg; ?></p>
95
+ <form action="purchase.php" method="POST" name="form" class="form">
96
+ <?php foreach ($_SESSION['cart'] as $product_id): ?>
97
+ <div class="cart_container">
98
+ <div class="cart_thumbnail">
99
+ <img src="images/<?php echo h($product_id['productImage']); ?>" title="画像" id="cart_img" width="auto" height="240">
100
+ </div>
101
+ <!-- <div class="cart_detail"><br> -->
102
+ <div class="cart_content">
103
+ <p>ブランド : <?php echo h($product_id['brandName']); ?></p>
104
+ <p>アイテム : <?php echo h($product_id['productName']); ?></p>
105
+ <p>サイズ  : <?php echo h($product_id['size']); ?></p>
106
+ <!-- <p>個数   : <?php echo h($product_id['count']); ?></p> -->
107
+ <p>個数  /
108
+ <select name="count" id="count" class="count">
109
+ <?php for ($i=1; $i<=10; $i++) {
110
+ echo "<option value=" .$i.">".$i."</option>";
11
- ソースコード
111
+ } ?>
112
+ </select></p>
113
+ <p id="id">id   : <?php echo h($product_id['product_id']); ?></p>
114
+ <p id="price" class="price"><?php echo number_format(h($product_id['price'])); ?><span> (税込)</span></p>
115
+ <!-- <p id="price">1<span> (税込)</span></p> -->
116
+ <p><a href="cart.php?id=<?php echo h($product_id['product_id']); ?>" name="delete">削除</a></p>
117
+ </div>
118
+ <p id="subtotal" class="subtotal" data>小計 <?php echo number_format(h($product_id['price'])); ?><span> (税込)</span></p>
119
+ </div>
120
+ <?php endforeach; ?>
121
+ <input type="hidden" name="product_id" value="<?php echo h($product_id['product_id']); ?>">
122
+ <input type="hidden" name="productImage" value="<?php echo h($product_id['productImage']); ?>">
123
+ <input type="hidden" name="productName" value="<?php echo h($product_id['productName']); ?>">
124
+ <input type="hidden" name="brandName" value="<?php echo h($product_id['brandName']); ?>">
125
+ <input type="hidden" name="size" value="<?php echo h($product_id['size']); ?>">
126
+ <input type="hidden" name="count" value="<?php echo h($product_id['count']); ?>">
127
+ <input type="hidden" name="subtotal" value="<?php echo h($product_id['subtotal']); ?>">
128
+ <input type="hidden" name="total" value="<?php echo h($total); ?>">
129
+
130
+ <div class="purchase">商品合計 ¥
131
+ <!-- <p class="total">商品合計   ¥<?php echo h($total); ?><span> (税込)</span></p> -->
132
+ <p class="total"><?php echo h($total); ?></p><span> (税込)</span>
133
+ </div>
134
+
135
+ <p class="buy">
136
+ <input type="submit" name="purchase" value="購入手続き">
137
+ </p>
138
+ </form>
139
+ <p><a href="index.php">買い物を続ける</a></p>
140
+
141
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
142
+ <script>
143
+
144
+ $(function() {
145
+ var sessionCart = <?php echo json_encode($_SESSION['cart']); ?>;
146
+
147
+ $('select').on('change', function() {
148
+
149
+ // $('select').each(function() {
150
+ var selected = $(this).val();
151
+
152
+ console.log(selected);
153
+
154
+ Object.values(sessionCart).forEach(function(value, index) {
155
+ console.log(value.price + '[' + value.product_id + ']');
156
+ const total = value.price * selected;
157
+ console.log(total);
158
+
159
+ $.ajax({
160
+ type: "POST",
161
+ url: "http://192.168.33.10:8000/cart.php",
162
+    data: {"total": "total"}
163
+ }).done(function() {
164
+ // $('#subtotal').each(function() {
165
+ $('#subtotal').text('小計 ' + total + '(税込)');
166
+ // });
167
+ }).fail(function(XMLHttpRequest, textStatus, errorThrown) {
168
+ alert(errorThrown);
169
+ });
170
+ });
171
+ // });
172
+ });
173
+ });
174
+ </script>
175
+ </body>
176
+
177
+ </html>
178
+
12
179
  ```
13
180
 
14
181
  ### 試したこと