【发布时间】:2016-11-25 22:49:03
【问题描述】:
<?php
$sql = "SELECT * FROM product ORDER BY product_id DESC";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
echo "" . $row["product"] . "\n\n<input type='checkbox' name='product[]' value=" .$row["product"] . ">\n
Quantity\n\n<select name='quantity[]'>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
</select><br />";
}
?>
<button name="submit" type="submit">submit</button><br />
<?php
if (isset($_POST['submit'])) {
if (is_array($_POST['product'])) {
foreach ($_POST['product'] as $key => $product_name) {
$quantity = $_POST['quantity'][$key];
echo $product_name . "\n";
echo $quantity . "<br>";
}
}
}
}
?>
我想选择多个产品和数量,但它没有给我选择的数量值。
在示例图片 1 中,您可以看到我选择了 2 个产品
- 华硕2
- 宏碁 3
但是如果点击提交,我会得到类似
- 华硕1
- 宏碁 1
【问题讨论】:
-
第一个和第二个下拉列表的值为 1,因此结果是正确的。始终提交所有数量值。
-
您的问题是仅发布选中的复选框,但发布了所有选择。因此,您需要将 2 链接在一起,以便它们的键匹配。您可以添加一个简单的计数器变量,即。
$i=0,name='product[$i]'/name='quantity[$i]' -
你看到我选择了什么产品了吗? @Maarten van Middelaar
-
感谢您的帮助,但我只是一个学习者,而不是 php 专家。请您更正我的脚本并将其张贴在这里好吗? @肖恩
-
@MaartenvanMiddelaar 发布了一个与我提到的内容相同的答案。我的例子是使用一个简单的计数器变量,他使用
$row['product_id'](或任何你的行ID列名)。