下面的表单可以包含文本字段的不同元素,下拉列表和选择框,允许用户更新其个人资料。表单提交后,正在更新MySQL字段的过程。
<form method="post">
My Name: <input name="myname" type="text" value="<?php echo $_SESSION['SESS_MY_NAME']; ?>" /><br />
My Email: <input name="email" type="text" value="<?php echo $_SESSION['SESS_EMAIL']; ?>" /><br />
<input type="submit" name="Submit" value="Update" />
<?php
if (isset($_POST['Submit'])) {
// MySQL update
;
;
;
$result=mysql_query($sql);
}
// if successfully updated, make form refresh.
if($result){
;
;
;
}
?>
</form>
我想只刷新表单,以便用户将保持在同一页面中并看到他所做的更改(即如果成功更新,我需要在代码中的注释下放置什么,请填写表单)刷新”?)。
我无法使用header("location: samepage.php");
,因为我之间和之前都涉及太多HTML代码。
感谢任何帮助,
答案 0 :(得分:2)
将isset($_POST['submit'])
支票移至顶部。
您当前(预期)的流程如下:
如果您将此检查移至顶部,则流程将更改为:
这是你能做到的绝对最简单的方法。它没有考虑Post / Redirect / Get或更新会话,所以多个DB读取是不必要的等等。
答案 1 :(得分:0)
为什么不使用jQuery AJAX提交并验证表单,然后在选择的div元素中输出结果。 有关详情,请参阅nettuts+
答案 2 :(得分:0)
这样有帮助。哇哇。
值得庆幸的是,经过一番激烈的谷歌搜索,我能够自己解决这个问题,因为似乎没有人能够得到答案。对于任何想要完成同样事情的人,您只需将以下代码添加到&#34;其他设置&#34; CF7表单配置部分:on_sent_ok:&#34; location =&#39; http://domain.com/contact&#39;; &#34;
只需将网址替换为表单页面的网址,然后在提交表单时自动刷回该页面!