首页 > 解决方案 > 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;
              }
            }
            ?>

标签: phpmysql

解决方案


试试这种方式:

<?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
    }

?>

推荐阅读