我目前正在制作一个包含5种产品的自我处理表格,用户可以在这些表格中输入5种产品中的任何一种。我保存了他们输入的数量
$_POST[qty_entered]
因为我有以下功能来打印产品显示:
// Print the product display
for ($i = 0; $i < sizeof ($product_display); $i++){
print "<tr><td>" .$product_display[$i]['image'] . "</td>";
print "<td>" . $product_display[$i]['model'] . "</td>";
print "<td> $" . $product_display[$i]['price'] . "</td>" ;
// Allow user inqut for quantity
print "<td> <input type = 'text' name = 'qty_entered[]' value ='0' size = '3' maxlength = '3'> </td> </tr>";} ?>
</table>
<br><input type = 'submit' name = 'submit_button' value = 'Submit Order'><br><br>
用户输入数量后,按下提交按钮,我必须检查他们是否输入了有效数量(这是一个正整数),然后在用户输入有效数量时打印发票。如果他们没有输入有效数量,我需要打印错误信息而不显示发票。以下代码就是我现在所拥有的,我在使其正确显示时遇到问题。我认为错误的一件事是我不知何故需要参考$ _POST ['qty_entered']中保存的多个数量但是我不知道如何在不使用[0] [1] [2]的情况下做到这一点如果我使用多个,它会给我一个错误。 [$ i]也不起作用。
// Make sure quantity entered is a positive whole number and print table row
$errors = FALSE;
if (array_key_exists ('submit_button', $_POST) && is_numeric($_POST['qty_entered'][0]) && $_POST['qty_entered'][0] > 0) {
print "<h2>Invoice</h2> <br> <table style='border-collapse: collapse; text-align: center'
height='319' border='1' bordercolor='#111111'
cellpadding='0' cellspacing='0' width='514'>
<!-- create header use <th> -->
<tr>
<th>Phone</th>
<th>Price</th>
<th>Quantity</th>
<th>Extended Price</th>
</tr>";
}
else {
$errors = TRUE;
Print "Please enter a valid quantity.";
}
请帮我创建一个正确的if-function来检查用户按下提交按钮后是否输入了有效数量。如果输入的数量有效,请打印发票,否则,打印错误消息。
谢谢!
答案 0 :(得分:0)
使用foreach:
// Start out assuming all products have quantities
$allProductsHaveQuantities = true;
foreach($_POST['qty_entered'] as $idx => $qty)
{
// Look for any quantities that are zero
if($qty == 0)
{
// One is enough, so set the flag and stop the loop
$allProductsHaveQuantities = false;
break;
}
}
// Now check the result of the flag
if(!$allProductsHaveQuantities)
{
...your error message here...
}