如何获得表单提交的状态


How to get status of form submission

我正在寻找一种"整洁"(干净)的方式来显示提交表单后的状态消息。

例如,如果一个用户更新了他们的个人资料,我想显示一个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();
}