Heim > Fragen und Antworten > Hauptteil
Liebe Freunde, ich bin kürzlich auf ein Problem mit den Farb- und Größenattributen eines Produkts gestoßen. Beispielsweise hat ein Produkt zwei Farben und drei Größen.
Produkt A hat ein Farbdesign [schwarz, weiß] und ein Größendesign [S , M, L]
Ich möchte auf die Produktliste klicken, um zur Produktdetailseite zu gelangen, die Menge jeder bestellten SKU eingeben und dann speichern und an die Datenbank übermitteln. Können Sie mir, wie unten gezeigt, einige Ideen geben? Die Farbe und Größe jedes Produkts ist nicht festgelegt. Die Farb- und Größeninformationen werden aus der Datenbank abgerufen und in einer nicht tabellarischen Kopfzeile angezeigt.
WBOY2023-06-29 10:53:35
<table> <thead> <tr> <th>商品名称</th> <?php // 从数据库中获取颜色信息 $colors = ['黑色', '白色']; // 从数据库中获取尺码信息 $sizes = ['S', 'M', 'L']; // 动态生成表头 foreach ($colors as $color) { foreach ($sizes as $size) { echo "<th>{$color} - {$size}</th>"; } } ?> </tr> </thead> <tbody> <!-- 商品列表数据 --> </tbody> </table>
用`<input>`标签来创建输入框,并使用`name`属性来标识不同的SKU。比如
<tbody> <?php // 从数据库中获取商品列表数据 $products = [ ['name' => '商品A', 'sku' => 'A001'], ['name' => '商品B', 'sku' => 'B001'], // 其他商品数据... ]; // 遍历商品列表 foreach ($products as $product) { echo "<tr>"; echo "<td>{$product['name']}</td>"; // 为每个SKU创建输入框 foreach ($colors as $color) { foreach ($sizes as $size) { $sku = "{$product['sku']}_{$color}_{$size}"; echo "<td><input type='number' name='{$sku}'></td>"; } } echo "</tr>"; } ?> </tbody>
用PHP来处理表单数据,并将其保存到数据库中。你可以使用`$_POST`超全局变量来获取表单数据,并使用SQL语句将其插入数据库比如
<?php // 处理表单提交 if ($_SERVER['REQUEST_METHOD'] === 'POST') { // 连接数据库 $conn = new mysqli('localhost', 'username', 'password', 'database'); // 检查连接是否成功 if ($conn->connect_error) { die('数据库连接失败:' . $conn->connect_error); } // 遍历表单数据 foreach ($_POST as $sku => $quantity) { // 将SKU拆分为颜色和尺码 $parts = explode('_', $sku); $color = $parts[1]; $size = $parts[2]; // 使用SQL语句将数据插入数据库 $sql = "INSERT INTO orders (sku, color, size, quantity) VALUES ('$sku', '$color', '$size', '$quantity')"; $result = $conn->query($sql); // 检查插入是否成功 if (!$result) { echo "插入数据失败:{$conn->error}"; } } // 关闭数据库连接 $conn->close(); } ?>