我正在寻找一种“整洁”(干净)的方式来提交表格后显示状态信息。
例如,如果用户更新了他们的个人资料,我想要显示带有“您的个人资料已被更新!”文字的DIV。
现在我正是这样做的:
在发布数据并插入或更新数据库表之后,我做了一个标题(“Location:updateprofile.php?status = updated”);
这很好用,但是它不是很干净。我不想要查询字符串。
我尝试的另一种方法是设置$ submitted = 1的变量;并且之后不做重定向。但是,当用户更新其信息时,它仍会在表单字段中显示旧信息,直到刷新为止。所以这也不起作用。
我知道我可以使用AJAX提交表单并以这种方式完成它,但是,对于我正在做的事情,我不想使用AJAX。我想要一个服务器端解决方案。
我唯一的另一个想法是必须设置$ _SESSION变量,然后在显示状态更新后以某种方式将其删除。
任何想法都将不胜感激!
谢谢,
Tony
答案 0 :(得分:2)
大多数情况下,这是通过存储需要显示的任何Flash消息的会话变量来处理的。
在共享视图(布局,元素)中添加类似
的内容<?php
if (isset($_SESSION['flashMessage']) && !empty($_SESSION['flashMessage'])) {
echo <<<EOF
<div class="flashMessage">
{$_SESSION['flashMessage']}
</div>
EOF;
unset($_SESSION['flashMessage']);
}
?>
将$_SESSION['flashMessage']
设为“您的个人资料已更新。”无论代码处理您的表单提交。
答案 1 :(得分:0)
将状态存储在会话数组变量中,然后执行:
<?php
if ( !empty( $_SESSION['statuses'] ) ) {
foreach ( $_SESSION['statuses'] as $status ) {
// Wrap in tags and format as needed
echo $status;
}
$_SESSION['statuses'] = Array();
}