当前位置: 首页 > 知识库问答 >
问题:

为什么html输入提交不分配$\u POST数组值

秦城
2023-03-14

请检查代码的最后一部分,输入type=“submit”name=“save\u changes\u submit”。此表单未在$\u POST中分配。我在这里干什么?我在这里犯了什么html错误吗?我怎样才能从这次提交中获得$\u 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>';

共有3个答案

韦思淼
2023-03-14

因为您没有为表单指定要处理的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">';
陈项禹
2023-03-14

这是因为根据这个条件if(设置($\u POST['id\u number\u submit'])!当您点击save\u changes\u submitsubmit按钮时,POST数据中没有包含id\u number\u 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>';
鲜于峰
2023-03-14

if条件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>';
?>
 类似资料:
  • 问题内容: 使用Java5,我们可以编写: 或仅在for循环中使用Iterable。这非常方便。 但是,您不能像这样编写可迭代的通用方法: 并使用数组调用它,因为它不是Iterable: 我想知道这个设计决定背后的原因。 问题答案: 数组可以实现接口(和)。那为什么不呢?我猜想Iterable强制添加方法,而数组不实现方法。甚至不覆盖。无论如何,应将引用数组视为不理想的-使用。如dfa注释所示,将

  • 问题内容: 我以前使用过这些,但是我想知道它叫什么以及是否有规范吗? 我在HTML 4.01 Spec中 找不到它,导致各种Google结果只将其称为“数组”,以及许多处理表单数据的PHP示例。 问题答案: 在PHP.net的此页面的注释中有一些引用和指针: 托斯滕说 “ XHTML规范的兼容性指南的C.8节适用于将name属性用作片段标识符。如果您检查DTD,则会发现’name’属性仍被定义为表

  • 使用按钮提交时它不会发送任何输入。据我所知,提交块(isset...)应该没问题。但是变量名称、kuerzel和网站中没有任何内容。 有人能帮我吗? 不知道该写些什么。。。 Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod temor invidunt ut labore et dolor

  • 问题内容: 我有这样的表格 我想要的$ _POST输出是一个像 我知道我可以做类似name =“ levels [1] [build_time]”之类的事情,但是由于这些元素是动态添加的,因此很难添加索引。还有其他办法吗? 编辑: 按照建议,我更改了表格。我现在也包含了我的整个HTML,因为我认为这里缺少一些内容。我的HTML现在: 我现在得到的输出是: 编辑2: 根据您的编辑建议,我编辑了表单并

  • 这个问题看起来像是重复的,但实际上不是。只是一个不断重复的微小差异。git一直告诉我:“请告诉我你是谁”,即使在设置之后。当我运行时,这就是我得到的…… 但是当我运行时,它会给我所有的详细信息… 我已经更改了我的姓名、电子邮件和代理,但当我运行命令时,它们看起来很好,即使在.gitconfig文件中,我也可以看到设置的值。可能缺少什么,因为我根本无法promise。每次它总是问我是谁? @sheu

  • 问题内容: 我想12”3在我的输入标签值中显示 我写这个: 但这是不对的 为什么呢? PS:我必须转移”到",或更改”到’?我不喜欢 问题答案: HTML根本没有像其他语言一样具有转义序列。在HTML属性值中,唯一的特殊字符是,取决于引号”或’。唯一使用这些字符的是字符引用: 一些作者使用字符实体引用“ ;”来编码双引号(”)的实例,因为该字符可用于定界属性值。 或者,您使用单引号,则无需编码双引