我正在尝试做一些允许用户更改商品“价格”的商品。到目前为止,它一直在工作,但是我的问题是,价格在页面的第一次加载中显示为空值,给了我“未定义的索引”错误,这意味着用户必须先输入价格才能按预期工作。我想这样做,以便在加载之前价格具有预定义的值。
任何帮助将不胜感激。
<?php
$price1 = $_POST['price1'];
$price2 = $_POST['price2'];
$price3 = $_POST['price3'];
$price4 = $_POST['price4'];
$price5 = $_POST['price5'];
$price6 = $_POST['price6'];
?>
<h2>Admin</h2>
<form method="POST" action="admin.php">
<table>
<tr>
<th>Product Name</th>
<th>Price</th>
<th>Change Price</th>
</tr>
<tr>
<td>Double Cheesy Quarter Pounder</td>
<td><?php echo "PHP" . $price1;?></td>
<td><input type="text" name="price1">
</td>
</tr>
<tr>
<td>Crispy Bacon Burger</td>
<td><?php echo "PHP" . $price2;?></td>
<td><input type="text" name="price2"></td>
</tr>
<tr>
<td>Mushroom Burger</td>
<td><?php echo "PHP" . $price3;?></td>
<td><input type="text" name="price3"></td>
</tr>
<tr>
<td>Triple Bacon Burger</td>
<td><?php echo "PHP" . $price4;?></td>
<td><input type="text" name="price4"></td>
</tr>
<tr>
<td>Cheesy Bacon Fries</td>
<td><?php echo "PHP" . $price5;?></td>
<td><input type="text" name="price5"></td>
</tr>
<tr>
<td>Chocolate Frappe</td>
<td><?php echo "PHP" . $price6;?></td>
<td><input type="text" name="price6"></td>
</tr>
</table>
<input type="submit" value="Confirm">
</form>
答案 0 :(得分:3)
在第一次加载页面时,出现“未定义索引”错误
您需要检查密钥是否存在:
$price1 = isset($_POST['price1']) ? $_POST['price1'] : '';
使用PHP 7,它更简单:
$price1 = $_POST['price1'] ?? '';
答案 1 :(得分:1)
如果未设置$ _POST,则可以设置默认值:
$price1 = isset($_POST['price1']) ? $_POST['price1'] : 99;
$price2 = isset($_POST['price2']) ? $_POST['price2'] : 99;
$price3 = isset($_POST['price3']) ? $_POST['price3'] : 99;
$price4 = isset($_POST['price4']) ? $_POST['price4'] : 99;
$price5 = isset($_POST['price5']) ? $_POST['price5'] : 99;
$price6 = isset($_POST['price6']) ? $_POST['price6'] : 99;
答案 2 :(得分:0)
从7.0版开始,您可以使用空合并:
<?php
$price1 = $_POST['price1'] ?? '';
// And so on.
这等效于:
<?php
$price1 = '';
if(isset($_POST['price1'])) {
$price1 = $_POST['price1'];
}
或更详细的变化。
答案 3 :(得分:-1)
这里有两件事,让我们先来看一下您未定义的索引错误
1)要消除未定义的索引错误,您首先需要在顶部将php variabels声明为null,例如
$price1=$price2=$price3=$price4=$price5=$price6='';
2)要获得预定义的值,您需要在每个输入字段中添加“ value”属性,例如
<input type="text" name="price3" value="<? php echo $price3; ?>" >