PHP后刷新网站

时间:2016-09-23 13:54:48

标签: php forms

我使用php对我的数据库进行了一些更改。我希望在发送公式后看到的结果。一边刷新,但改变不存在。如果我把f5一切都很好。是否有解决方案来修复它?

<form action="" method="Post">

    ........

if(isset($_POST["saveMetrics"]))
{
    $_DB = new DBData();
    $_DB -> connect();
    $str = "";
    for ($i = 3; $i < count($_metricsFb); $i++)
    {
        if(isset($_POST[$_metricsFb[$i]['COLUMN_NAME']]))
            $str=$str.$_metricsFb[$i]['COLUMN_NAME']."=1";
        else
            $str=$str.$_metricsFb[$i]['COLUMN_NAME']."=0";
        if($i!=count($_metricsFb)-1)
        {
            $str=$str.",";
        }
    }
    $queryCALL ="UPDATE t_user_metrics SET ".$str." WHERE id_user=";

    $_DB -> setMetrics( $_GET["client"],$queryCALL) ;
    header("Location: dailyReport.php?client=".$_GET["client"]." success=true");
    $_DB ->disconnect();          
}
    <div><input type="submit" class="button" name="saveMetrics" value="Save"></div>                     
</form>
如果我采取行动之路,它就无法发挥作用。

header('location:'.$_SERVER['PHP_SELF']);

也不起作用! 我可以打开另一个刷新他父母的窗口。但这必须是一种更简单的方法。有人有想法吗?

2 个答案:

答案 0 :(得分:0)

尝试使用header更改网址。

header("Location: yoururl.php?success=true");

也许尝试这样:

if (isset($_GET['success'] && $_GET['success']=="true") {
   echo "Your data has changed.";
}

答案 1 :(得分:0)

可能在执行更新脚本之前显示数据。尝试在它之前移动代码。

if(isset($_POST["saveMetrics"]))
{
    $_DB = new DBData();
    $_DB -> connect();
    $str = "";
    for ($i = 3; $i < count($_metricsFb); $i++)
    {
        if(isset($_POST[$_metricsFb[$i]['COLUMN_NAME']]))
            $str=$str.$_metricsFb[$i]['COLUMN_NAME']."=1";
        else
            $str=$str.$_metricsFb[$i]['COLUMN_NAME']."=0";
        if($i!=count($_metricsFb)-1)
        {
            $str=$str.",";
        }
    }
    $queryCALL ="UPDATE t_user_metrics SET ".$str." WHERE id_user=";

    $_DB -> setMetrics( $_GET["client"],$queryCALL) ;
    header("Location: dailyReport.php?client=".$_GET["client"]." success=true");
    $_DB ->disconnect();          
}

... your <form> and other stuff