为什么html输入提交没有分配$_POST数组值


Why html input submit not assigning $_POST array value

请检查输入类型="提交" name="save_changes_submit"的最后一部分代码。这个表单没有在$_POST中赋值。我在这里做错了什么?我在这里做的html错误吗?我如何实现$_POST值形式这个提交?

echo '<form action="" method="post">ID Number:<input type="number" name="id_number" value="number"><br><br><input type="submit" value="Search Product" name="id_number_submit">';
if (isset($_POST['id_number_submit'])) {
    $id_number = $_POST['id_number'];
    $q = mysqli_query($conn, "SELECT * FROM product WHERE id='$id_number'");
    $row = mysqli_fetch_array($q);
    if (empty($row)) {
        echo "Error: Invalid product id";
    }else{
    $product_name = $row['product_name'];
    $product_des = $row['product_des'];
    $product_price = $row['product_price'];

echo '<br><br><input type="number" name="product_price" value="'.$product_price.'">';
echo '<br><br><input type="text" name="product_name" value="'.$product_name.'">';
echo '<br><br><textarea rows="8" cols="100" name="product_des">'.$product_des.'</textarea><br><input type="submit" value="Save Changes" name="save_changes_submit">';
if (isset($_POST['save_changes_submit'])) {
    echo $c_product_price = $_POST['product_price'];
    echo $c_product_name = $_POST['product_name'];
    echo $c_product_des = $_POST['product_des'];
}
}
}
echo '</form>';

条件if(isset($_POST['save_changes_submit']))if(isset($_POST['id_number_submit']))内。这就是问题所在。

<?php
echo '<form action="" method="post">ID Number:<input type="number" name="id_number" value="number"><br><br><input type="submit" value="Search Product" name="id_number_submit">';
    if(isset($_POST['id_number_submit'])) {
        $id_number = $_POST['id_number'];
        $q = mysqli_query($conn, "SELECT * FROM product WHERE id='$id_number'");
        $row = mysqli_fetch_array($q);
        if (empty($row)){
            echo "Error: Invalid product id";
        }else{
            $product_name = $row['product_name'];
            $product_des = $row['product_des'];
            $product_price = $row['product_price'];

        echo '<br><br><input type="number" name="product_price" value="'.$product_price.'">';
        echo '<br><br><input type="text" name="product_name" value="'.$product_name.'">';
        echo '<br><br><textarea rows="8" cols="100" name="product_des">'.$product_des.'</textarea><br><input type="submit" value="Save Changes" name="save_changes_submit">';
        }
    }
    if(isset($_POST['save_changes_submit'])) {
        echo $c_product_price = $_POST['product_price'];
        echo $c_product_name = $_POST['product_name'];
        echo $c_product_des = $_POST['product_des'];
    }
    echo '</form>';
?>

这是因为这个条件下if (isset($_POST['id_number_submit'])) !单击save_changes_submit提交按钮时,POST数据中不包含id_number_submit。所以它不符合你的条件。改变你的状况的解决方案

echo '<form action="" method="post">ID Number:<input type="number" name="id_number" value="number"><br><br><input type="submit" value="Search Product" name="id_number_submit">';
if (isset($_POST['id_number_submit'])) {
    $id_number = $_POST['id_number'];
    $q = mysqli_query($conn, "SELECT * FROM product WHERE id='$id_number'");
    $row = mysqli_fetch_array($q);
    if (empty($row)) {
        echo "Error: Invalid product id";
    }
    else{
    $product_name = $row['product_name'];
    $product_des = $row['product_des'];
    $product_price = $row['product_price'];

echo '<br><br><input type="number" name="product_price" value="'.$product_price.'">';
echo '<br><br><input type="text" name="product_name" value="'.$product_name.'">';
echo '<br><br><textarea rows="8" cols="100" name="product_des">'.$product_des.'</textarea><br><input type="submit" value="Save Changes" name="save_changes_submit">';    
   }
}
if (isset($_POST['save_changes_submit'])) {
    $c_product_price = $_POST['product_price'];
    $c_product_name = $_POST['product_name'];
    $c_product_des = $_POST['product_des'];
    echo $c_product_price;
    echo $c_product_name;
    echo $c_product_des;
}
echo '</form>';

因为您没有指定要处理哪个php文件。

echo '<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">ID Number:<input type="number" name="id_number" value="number"><br><br><input type="submit" value="Search Product" name="id_number_submit">';