我正在尝试通过按下按钮之后调用的表单向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。我没有看到我的逻辑有什么问题......最受欢迎的一点指导!提前谢谢!
答案 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>