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