我需要创建一个订单表,该表在表中的每个产品都有一个复选框,每个产品旁边都有一个数量框。
我需要处理已检查的产品,并使用已检查的产品和输入的数量更新订单表。
我不知道如何将产品复选框链接到数量字段。
$sql="select * from tproducts";
$result=mysqli_query($con, $sql) or die(mysqli_error($con));
echo "<table>";
echo "<tr>";
echo "<th>Product Names</th>";
echo "</tr>";
if(mysqli_num_rows($result)>0)
{
echo "<form action=welcome1.php method=post>";
while ($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo '<td><input type="checkbox" value="' . $row['intProductID'] . '" name="materialcode[]">' . $row['strProductName'] . "</td>";
echo "<td>Enter Quantity </td>";
echo "<td><input type='text' name='qty[]' value='qty' size=5></td>";
echo "</tr>";
}
}
echo "</table>";
echo '<input type="submit" name="submit" value="submit" />';
echo "</form>";
echo "</html>";
welcome1.php
<?php
echo "materialcode<br>";
print_r($_POST['materialcode']);
echo "<br>";
echo "qty<br>";
print_r($_POST['qty']);
?>
答案 0 :(得分:0)
PHP将在html字段中保留您提供的键名。
$productIndex = 0;
while ($row = mysqli_fetch_array($result) )
{
echo "<tr>";
echo '<td><input type="checkbox" value="' . $row['intProductID'] . '" name="materialcode[$productIndex]">' . $row['strProductName'] . "</td>";
echo "<td>Enter Quantity </td>";
echo "<td><input type='text' name='qty[$productIndex]' value='qty' size=5></td>";
echo "</tr>";
$productIndex++;
}
此示例使用数字索引,但您也可以使用$row['intProductId']
。
在您的php中:
$_POST['materialCode'][0]
将类似于$_POST['qty'][0]
,但仅提供选中的复选框。如果只有那些检查过的数组,您可能会得到一个$_POST['materialCode']
数组,该数组的索引为0、5和7。
因此,请使用foreach循环而不是for循环。
foreach( $_POST['materialCode'] as $key => $value ){
$productId = $value;
$quantity = $_POST['qty'][$key];
}