我使用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']);
也不起作用! 我可以打开另一个刷新他父母的窗口。但这必须是一种更简单的方法。有人有想法吗?
答案 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