猿问

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

我需要创建一个订单表,其中有一个表格中每个产品的复选框,每个产品旁边都有一个数量框。

我需要处理已检查的产品并使用已检查的产品和输入的数量更新订单表。


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


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

?>


慕田峪9158850
浏览 151回答 1
1回答

蓝山帝景

PHP 将保留您在 html 字段中提供的密钥名称。&nbsp; $productIndex = 0;&nbsp; &nbsp;&nbsp; while ($row = mysqli_fetch_array($result) )&nbsp; {&nbsp; &nbsp; echo "<tr>";&nbsp; &nbsp; echo '<td><input type="checkbox" value="' . $row['intProductID'] . '" name="materialcode[$productIndex]">' . $row['strProductName'] . "</td>";&nbsp; &nbsp; echo "<td>Enter Quantity </td>";&nbsp; &nbsp; echo "<td><input type='text' name='qty[$productIndex]' value='qty' size=5></td>";&nbsp;&nbsp;&nbsp; &nbsp; echo "</tr>";&nbsp; &nbsp; $productIndex++;&nbsp; }&nbsp;此示例使用数字索引,但您可能也可以使用$row['intProductId']。在你的 php 中:$_POST['materialCode'][0]将类似于,$_POST['qty'][0]但只会提供选中的复选框。$_POST['materialCode']如果只检查了索引 0、5 和 7,您可能最终会得到一个索引为 0、5 和 7的数组。所以使用 foreach 循环而不是 for 循环。foreach( $_POST['materialCode'] as $key => $value ){&nbsp; &nbsp; $productId = $value;&nbsp;&nbsp; &nbsp; $quantity = $_POST['qty'][$key];&nbsp;}
随时随地看视频慕课网APP
我要回答