【问题标题】:How to refresh a php page on form submit? [duplicate]如何刷新表单提交的php页面? [复制]
【发布时间】:2016-12-01 19:39:15
【问题描述】:

我的问题是在php 页面中提交表单元素后,页面没有刷新。这是我的代码。

<?php
    session_start();
    include('db.php');
    include('pages.php');
?>

表单元素

<form action = "<?php echo $_SERVER['PHP_SELF'];?>" method = "POST">
   <table style="width:70%">
      <tr>
         <td width="10%">First Name</td>
         <td width="20%"><input style="border-radius: 4px; border: 2px solid gray; height: 20px; width: 180px;" type="text" name="fname" value="<?php echo $f_name;?>"></td>
      </tr>

<input style="border-radius: 5px; width: 100px; height: 25px;" type="submit" name="account_update" value="Update"/></td>
   </table>
</form>

if(isset($_POST['account_update']) && $_POST['account_update'] == 'Update'){

    $fname_edit = $_POST['fname'];

    $sql = $db->prepare("SELECT * from table where email = ?");
    $sql->bind_param("s",$email);
    $sql->execute();
    $sql = $sql->get_result();
    if(($getRowCount = $sql->num_rows) == 1){
    $updateQuery = $db->prepare("UPDATE info set first_name=? where email = ?");
                                       $updateQuery->bind_param("ss",$fname_edit,$email);
    $updateQuery->execute();
       }        
    }

 ?>

所以点击更新,将数据插入到故事中,但它只在我第二次刷新时才显示在页面上。

还有。 pages.php 是通过包含获取的另一个页面。如果我删除include('pages.php'),我的当前页面会很好地刷新,但不是用它。关于如何把这个东西拿出来的任何建议都会有很大帮助。

【问题讨论】:

  • 我没有看到任何有关重定向的相关代码。你很有可能在标题之前输出。
  • 这是在哪里定义的? $email。我看到的只是$fname_edit,没有任何东西可以支持$_POST['fname'] 数组。
  • if(isset(...之前好像少了&lt;?php
  • 检查您是否在标头之前输出错误报告php.net/manual/en/function.error-reporting.php 或其他内容,如果您失败了。您需要在成功查询后放置重定向代码,并且不知道您在哪里使用它。
  • 也许我说的不对,但是你用 JS 刷新,而不是用 PHP

标签: php html forms


【解决方案1】:

您可以将用户重定向到当前文件。之后:

$updateQuery->execute();

添加:

header("Location: yourfile.php");
//header("Location: ".basename(__FILE__, '.php')); Might work too

这将在执行查询后将用户重定向到该文件。

【讨论】:

  • 我不认为你明白这个问题。他们很可能已经在他们说他们拥有的另一个文件中的未显示代码中使用了它。
  • @Fred-ii- 好吧,我在当前文件中看不到重定向,所以我只是添加了,因为我认为这应该可以解决问题......或者我仍然不明白这个问题。
  • 这是我在他们的问题下告诉 OP 的。我害怕混合可能的错误/问题。我认为他们在标题之前输出,但不检查错误。
  • @BishwaroopChakraborty 那么您是否只从给出的“答案”中回答我们?我在您的问题下发布了很多 cmets,但没有回复。 “它不起作用” 对任何人来说都没什么好说的。因此,鉴于没有 cmets,我现在将传递此内容。祝你好运,我出去了。
【解决方案2】:
// REFRESH PAGE
echo "<meta http-equiv='refresh' content='0'>";

【讨论】:

  • 虽然此代码可以回答问题,但提供有关 如何 和/或 为什么 解决问题的附加上下文将改善答案的长期价值。
猜你喜欢
  • 2023-03-12
  • 1970-01-01
  • 1970-01-01
  • 2020-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-09
  • 1970-01-01
相关资源
最近更新 更多