PHP MySQL获取订单的材料和数量

时间:2019-05-09 23:45:27

标签: php checkbox

我需要创建一个订单表,该表在表中的每个产品都有一个复选框,每个产品旁边都有一个数量框。
我需要处理已检查的产品,并使用已检查的产品和输入的数量更新订单表。

我不知道如何将产品复选框链接到数量字段。

$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']);
?>

1 个答案:

答案 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]; 
}