繁体   English   中英

成功插入MySQL表后更新页面

[英]Update page after successful insertion into MySQL table

我正在制作一个包含大量字段的页面,允许用户输入信息并将其提交到数据库。 此页面称为“ add.php”,我创建了一个“ form”标签,并将信息发布到另一个名为“ process.php”的页面,在该页面中收集信息,然后将其插入数据库。 我想让用户知道它是否成功,所以我想知道如何告诉用户“ add.php”页面上的特定内容。 就像“插入成功!” 在页面顶部。

我想到了将'process.php'代码包含在'add.php'中,然后在表单的操作中调用'add.php',但是该代码在首次加载页面时被调用,这将完全插入进入数据库的空白条目。

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

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

谢谢!

假设您在表单和php中使用post方法,则只需检查是否已发布:

if ($_SERVER['REQUEST_METHOD'] === 'POST')
{
  // form was posted, process and display output
}
else
{
  // nothing was posted, normal get request, show form
}

只要检查查询是否运作良好。 如果没有抛出异常,则大多数情况下都会抛出异常,并在输出中添加适当的消息。

首先,您需要检查和处理错误

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并打印适当的消息。

如果你得到,发表评论。

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

//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”,以提醒输入成功

//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代码将跳过第一个代码块(表单提交的内容),并且不会进行数据库提交或设置成功变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM