通过其他表单(按钮)调用表单

时间:2015-09-21 08:53:42

标签: php forms

我正在尝试通过按下按钮之后调用的表单向DB添加一些信息,该按钮也是表单的一部分。更准确地说,按下按钮后,会打印一个表格,如下所示:

<?php
if(isset($_POST['x']))
{
    if(isset($_POST['submit']))
    {
        $msg=mysqli_real_escape_string($_POST['msg']);

        mysqli_query($conn, "INSERT INTO user_posts (msg) VALUES ('$msg')");
    }
?>
    <form method="post">
        <textarea name="msg" cols="100" rows="10"></textarea>
        <input type="submit" name="submit" value="Submit"/>
    </form>
<?php
}


?>
    <form method="post">
        <button type="submit" name="x">Press this!</button>
    </form>

按下POST ['x']后,带有textarea的表单按预期显示,但是如果按“POST [提交]”,页面只显示第一个按钮,我无法确定为什么没有添加信息到DB。我没有看到我的逻辑有什么问题......最受欢迎的一点指导!提前谢谢!

3 个答案:

答案 0 :(得分:1)

当您提交表单时,POST数据将再次发送到同一页面,因为将数据添加到数据库的if语句位于您的第一个if中,它将不会被发送。

首先检查是否发送了第二张表格,如果没有,请检查是否有X按钮。

这是解决方案:

print(go.sprite.texture.height);

答案 1 :(得分:0)

您必须创建一个表单:

<form method="post">
    <textarea name="msg" cols="100" rows="10"></textarea>
    <button type="submit" name="x">Press this!</button>
</form>

这样,您的按钮名为 x 将被发送。 您还必须删除 if 语句:

if(isset($_POST['submit']))

你不应该验证两个按钮帖子。

答案 2 :(得分:0)

逻辑错误是您测试1变量x的提交,然后在其中测试第二个发布的变量submit。尝试更改以上内容,例如:

<?php
    if( isset( $_POST['submit'] ) ){
        /* db logic */
        $msg=mysqli_real_escape_string($_POST['msg']);
        mysqli_query($conn, "INSERT INTO user_posts (msg) VALUES ('$msg')");  
    }
    if( isset( $_POST['x'] ) ){
        /* display the second form */
        echo '
        <form method="post">
            <textarea name="msg" cols="100" rows="10"></textarea>
            <input type="submit" name="submit" value="Submit"/>
        </form>';
    }
?>

<form method="post">
    <button type="submit" name="x">Press this!</button>
</form>