提交后表单刷新

时间:2012-08-16 19:30:22

标签: php mysql html

下面的表单可以包含文本字段的不同元素,下拉列表和选择框,允许用户更新其个人资料。表单提交后,正在更新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代码。

感谢任何帮助,

3 个答案:

答案 0 :(得分:2)

isset($_POST['submit'])支票移至顶部。

您当前(预期)的流程如下:

  1. 从DB / Session / etc中检索表单数据
  2. 以HTML格式显示
  3. 用户提交表单
  4. 重复步骤1/2
  5. 将数据写入数据库
  6. 强制刷新
  7. 再次重复1/2
  8. 如果您将此检查移至顶部,则流程将更改为:

    1. 从数据库中检索表单数据
    2. 以HTML格式显示
    3. 用户提交表单
    4. 将数据写入数据库
    5. 重复1/2(现在将检索更新的信息并正确显示)。
    6. 这是你能做到的绝对最简单的方法。它没有考虑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;

只需将网址替换为表单页面的网址,然后在提交表单时自动刷回该页面!