如何获取表单提交的状态

时间:2011-10-18 19:23:01

标签: php forms notifications submit

我正在寻找一种“整洁”(干净)的方式来提交表格后显示状态信息。

例如,如果用户更新了他们的个人资料,我想要显示带有“您的个人资料已被更新!”文字的DIV。

现在我正是这样做的:

在发布数据并插入或更新数据库表之后,我做了一个标题(“Location:updateprofile.php?status = updated”);

这很好用,但是它不是很干净。我不想要查询字符串。

我尝试的另一种方法是设置$ submitted = 1的变量;并且之后不做重定向。但是,当用户更新其信息时,它仍会在表单字段中显示旧信息,直到刷新为止。所以这也不起作用。

我知道我可以使用AJAX提交表单并以这种方式完成它,但是,对于我正在做的事情,我不想使用AJAX。我想要一个服务器端解决方案。

我唯一的另一个想法是必须设置$ _SESSION变量,然后在显示状态更新后以某种方式将其删除。

任何想法都将不胜感激!

谢谢,

Tony

2 个答案:

答案 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();

}