0

我有以下代码:

<?php
... 
?>

<script>
....
</script>

<html>
 ...
</html>

显示 HTML 表单后,JavaScript 应该验证,然后 PHP 应该保存在数据库中并给出确认消息.. 但是发生的是,在执行 PHP 并回显成功消息后,HTML 表单也显示如下消息.. 什么我可以做些什么来避免这种情况?

4

6 回答 6

1

如果表单提交成功,我更喜欢设置一个变量。类似于以下内容:

<?php
$success = false;

if (isset($_POST['submit'])) {
    // process form submission
    // if submission validates; set $success to true
}
?>
<!DOCTYPE html>
<html>
  <head>
    …
  </head>
  <body>
<?php if ($success): ?>
    <p>Thank you for your submission!</p>
<?php else: ?>
    <form action="" method="post">
      …
    </form>
<?php endif; ?>
  </body>
</html>
于 2013-07-03T17:31:55.163 回答
0

您可以在处理数据后结束脚本exit();请参阅文档

就像@Shomz 所说,您可以将 HTML 输出包装在 if 语句中,以防止在处理表单数据后打印它。

于 2013-07-03T17:21:20.633 回答
0
  • 将 PHP 放在不同的文件中(您可以包含 HTML 文件)

  • return;

  • die();

  • exit();

  • 使用ob_start()和 类似的功能来缓冲 HTML 并_clean在不需要时将其刷新到必杀技。

  • 提交到不同的文件(与第一点几乎相同)。

  • 在php.ini中使用 prepend 在脚本之前启动 ob ,并在 php.ini 中附加以在某些情况下终止输出(可能使用isset()on 变量来检查是否有提交或只是$_POST/ $_GET)。

您可能还想在这里查看其他人已经询问过 php 的 PRG 模式:Simple Post-Redirect-Get code example

于 2013-07-03T17:23:20.427 回答
0
if(isset($_POST['name'])){

//your insert query 
//your thanks message

}
else{
// Your html form
}
于 2013-07-03T17:25:41.070 回答
0

只需使用标志变量:-

if(isset($some_var))
{

// do something 

}
else{
//  show html form
}
于 2013-07-03T17:27:04.130 回答
0

您可以使用表单的“操作”将帖子发送到另一个有确认消息的文件。

或者你不能if(!$_POST)在你的 html 之前加上一个条件

于 2013-07-03T17:30:09.623 回答