0

我正在制作一个包含一堆字段的页面,这些字段允许用户输入信息并将其提交到数据库。这个页面叫做'add.php' 我创建了一个'form'标签,并将信息发布到另一个名为'process.php'的页面,在那里收集信息,然后插入到数据库中。我想让用户知道它是否成功,所以我想知道如何在“add.php”页面上告诉用户一些特定的东西。比如“插入成功!” 在页面顶部。

我想在'add.php'中包含'process.php'代码,然后在表单的动作中调用'add.php',但是第一次加载页面时会调用代码,这会插入一个完全数据库中的空白条目。

我是否应该实现某种仅在单击“提交”按钮后才设置为 true 的标志?还是有另一种方法来更新页面并告诉用户插入的状态?

我可以根据需要粘贴相关代码。:)

谢谢!

4

3 回答 3

3

假设您post在表单和 php 中使用该方法,您可以简单地检查是否发布了帖子:

if ($_SERVER['REQUEST_METHOD'] === 'POST')
{
  // form was posted, process and display output
}
else
{
  // nothing was posted, normal get request, show form
}
于 2012-09-28T14:40:35.013 回答
0

只需检查查询是否运行良好。如果没有抛出异常,它主要有,并添加适当的输出消息。

首先你需要检查和处理错误

try
{

} 
catch(Exception $e){
header('Location:oldlocation.php?succ=0')
exit();
}
header('Location:oldlocation.php?succ=0')
exit();

如果一切顺利,您还可以重定向到新位置(如代码所示)。这必须正确完成,您可以重定向回旧位置,并提供其他数据,例如

oldlocation.php?succ=1;

如果出现任何问题重定向到

oldlocation.php?succ=0

然后使用 $_GET["succ"] 获取 succ 并打印适当的消息。

如果你得到,评论。

于 2012-09-28T15:00:01.103 回答
0

这就是我要做的......将您的处理数据保存在一个文件中,并在最后包含表单文件

//add.php

//if the form is submitted make the database entry
if(isset($_POST['foo']) AND $_POST['foo'] != '')
{
//code to process form submission
$success = 'success!';

}
//include the form
include addform.php

在 addform.php 中放置您的表单。包括一个正在监视 $success 以提醒条目成功的“isset”

//addform.php

<?php if(isset($success)){ echo "<h2> Data successfully entered! </h2>";} ?>

<form action='' method='POST'>
<input type='text' name='foo' />
//etc
</form>

因此,一旦您提交表单,代码就会从 add.php 的顶部开始 - 'isset' 看到 $_POST 提交,运行表单提交代码并设置成功变量。然后,它包括表单页面。表单页面有一个“isset”,它正在监视成功变量。当您第一次导航到页面时,或者如果您刷新,add.php 代码将跳过第一个代码块(表单提交内容)并且不会进行数据库提交或设置成功变量。

于 2012-09-28T17:22:04.083 回答