嘿,我是PHP的新手,所以请怜悯我!
我正在尝试回显$ qty,但它说该变量是一个未定义的变量。
如果你看到我做错了什么,请随时告诉我!
提前致谢!
action.php的:
foreach ($rows as $row){
$food = $row['food'];
$price = $row['price'];
if(isset($_POST['qty'])){
$qty = $_POST['qty'];
echo 'set';
}else{
echo 'unset';
}
echo "<tr>
<td>$food</td>
<td>$qty</td>
<td>$price</td>
</tr>";
}
order.php:
foreach ($rows as $row) {
$food = $row["food"];
$price = $row["price"];
$picture = $row["picture"];
$description = $row["description"];
$id = $row['id'];
echo "<tr>
<td><img src='$picture' width='120px' /></td>
<td>$food</td>
<td>$$price</td>
<td><input type='number' min='0' max='10' placeholder='#' name='qty' maxlength='1'></td>
</tr>";
}
答案 0 :(得分:2)
似乎几乎可以确定if(isset($_POST['qty'])){
没有通过,因此变量没有给出值。确保将POST数据传递给此脚本
如果我是正确的,你应该在输出中看到“unset”这个词。
您可以提前设置$qty
,这样无论如何,它都会有值,或者如果您的if
语句为false,则为其赋予不同的值:
//set a default value earlier
$qty = 'This is the default value!';
//or in the if statement
if(isset($_POST['qty'])){
$qty = $_POST['qty'];
echo 'set';
} else {
$qty = 'qty wasn't given a value!';
echo 'unset';
}
答案 1 :(得分:2)
如果未设置,则尝试使用$qty
。 $_POST['qty']
为空时会发生这种情况。您需要做的是在这些情况下为其设置默认值:
if(isset($_POST['qty'])){
$qty = $_POST['qty'];
}else{
$qty = 0;
}
或使用三元运算符将其设为单行:
$qty = (isset($_POST['qty'])) ? $_POST['qty'] : 0;
答案 2 :(得分:1)
它未定义,因为您没有POST(表单提交)名为qty
的字段