php - if语句变量为空时如何显示错误
问题描述
我觉得好像我超级接近,但似乎只能在下面显示一条消息,而不是在我设置跨度的地方。我有一种感觉,因为我的 if ( isset ) 在表单下方,但我似乎无法将所有 php 放在最上面,因为由于提交功能,它不会显示任何内容。我知道可以从 if 语句中设置变量但是,因为它在表格下方,它似乎不起作用..肯定有办法解决这个问题吗?我似乎在网上找不到任何类似情况的东西。这是我正在使用的代码...
<form action="<?php echo $_SERVER["PHP_SELF"];?>" method="post">
<div class="form-group">
<label>Product Name</label>
<input type="text" class="form-control" id="productName" name="productName" placeholder="Enter Product Name"><span class="error"><?php echo $nameError;?></span>
</div>
<div class="form-group">
<label>Quantity</label>
<input type="Number" class="form-control" id="Quantity" name="QTY" placeholder="Enter Quantity" >
</div>
<div class="form-group">
<label>Price</label>
<input type="text" class="form-control" id="productPrice" name="productPrice" placeholder="Enter Price">
</div>
<div class="form-group">
<label>Variable</label>
<input type="text" class="form-control" id="variable" name="Variable" placeholder="Enter Variable">
</div>
<div class="form-group">
<label>Description</label>
<textarea class="form-control" id="productDescription" name="productDescription"/></textarea>
</div>
<input type="submit" name="submit" value="Submit" class="btn btn-primary"></input>
</form>
<?php
if(isset($_POST['submit'])){
if(empty($productName) || empty($productPrice))
{
echo "All * fields are required.";
}
else {
$productName = $_POST["productName"];
$productDescription = $_POST['productDescription'];
$productPrice = $_POST['productPrice'];
$QTY = $_POST['QTY'];
$Variable = $_POST['Variable'];
$sql = "INSERT INTO product (productName, productDescription, productPrice, QTY, Variable) VALUES (:productName, :productDescription, :productPrice, :QTY, :Variable)";
$statement = $conn->prepare($sql);
$statement->bindValue(':productName', $productName);
$statement->bindValue(':productDescription', $productDescription);
$statement->bindValue(':productPrice', $productPrice);
$statement->bindValue(':QTY', $QTY);
$statement->bindValue(':Variable', $Variable);
$result = $statement->execute();
$statement->closeCursor();
header("location: ../view/success.php");
return $result;
}
}
?>
解决方案
试试这种方式:
<?php
$nameErr = "";
if (empty($_POST["productName"])) {
$nameErr .= "productName is required";
}
if (empty($_POST["productDescription"])) {
$nameErr .= "productDescription is required";
}
if (empty($_POST["productPrice"])) {
$nameErr .= "productPrice is required";
}
if (empty($_POST["QTY"])) {
$nameErr .= "QTY is required";
}
if (empty($_POST["Variable"])) {
$nameErr .= "Variable is required";
}
if($nameErr!=""){
echo "All * fields are required.";
echo $nameErr;
}
else{
// Your process with SQL
}
?>
推荐阅读
- powerbi - 按 DAX 中的辅助字段过滤
- postgresql - 在 docker 中运行的 Postgres 数据库一直挂起
- python - 如何存储每个类别对象的总提款金额?
- flutter - MapboxMap 的控制器在被侦听器调用时的 cameraPosition 等于 null
- microservices - 我应该如何从其他服务加载历史事件?
- node.js - 如何防止代码多次执行
- python - 如何在 BERT 模型上应用剪枝?
- javascript - React:当元素模糊时触发一个函数
- python - 值未更新
- javascript - 使用弹出窗口动态显示 OpenLayers 5 上的多个标记