我正在创建一个包含大量字段的页面,允许用户输入信息并将其提交到数据库。这个页面被称为'add.php'我创建了一个'form'标签,并将信息发布到另一个名为'process.php'的页面,在那里收集信息,然后插入到数据库中。我希望用户知道它是否成功,所以我想知道如何告诉用户'add.php'页面上的具体内容。比如“插入成功!”在页面顶部。
我想在'add.php'中包含'process.php'代码,然后在表单的操作中调用'add.php',但代码在第一次加载页面时被调用,将完全空白的条目插入数据库。
我应该在点击“提交”按钮后实现某种仅设置为true的标志吗?或者是否有另一种方法来更新页面并告诉用户插入的状态?
我可以根据需要粘贴相关代码。 :)
谢谢!
答案 0 :(得分:3)
假设您在表单和php中使用post
方法,您只需检查是否发布了帖子:
if ($_SERVER['REQUEST_METHOD'] === 'POST')
{
// form was posted, process and display output
}
else
{
// nothing was posted, normal get request, show form
}
答案 1 :(得分: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并打印相应的消息。
如果你得到,请评论。
答案 2 :(得分: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中填写表单。包括一个'isset',它正在注意$ success成功以提示条目成功
//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代码将跳过第一个代码块(表单提交内容),并且不会提交数据库或设置成功变量。