How to refresh a php page on form submit?
我的问题是,在提交php页中的表单元素后,该页不刷新。这是我的密码。
1 2 3 4 5
| <?php
session_start();
include('db.php');
include('pages.php');
?> |
形式元素
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| <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正在获取的另一个页面。如果删除include('pages.php'),我的当前页面将得到很好的刷新,但不使用它。关于如何解决这个问题的任何建议都会很有帮助。
- 我没有看到任何与重定向相关的代码。你很可能在标题前输出。
- 这是在哪里定义的?$email。我看到的是$fname_edit,没有任何东西可以支持$_POST['fname']数组。
- 在if(isset(...之前似乎缺少。
- 检查是否在报错php.net/manual/en/function.error-reporting.php前输出,如果失败,则检查是否在报错php.net/manual/en/function.error-reporting.php前输出。您需要在成功查询后放置重定向代码,并且不知道您到底在哪里使用它。
- 也许我是错的,但是你用JS刷新,而不是用PHP刷新。
- 我在这里花了足够的时间。有两个可能的副本张贴可能是相关的。
您可以将用户重定向到当前文件。后:
1
| $updateQuery->execute(); |
添加:
1 2
| header("Location: yourfile.php");
//header("Location:".basename(__FILE__, '.php')); Might work too |
这将在执行查询后将用户重定向到此文件。
- 我觉得你不明白这个问题。他们已经很有可能在自己的非自治代码中使用它,而这些代码来自他们所说的另一个文件。
- @Fred II-嗯,我在当前文件中看不到重定向,所以我只是添加了,因为我认为这样可以解决问题…或者我还是不明白这个问题。
- 这就是我在他们的问题下告诉OP的。我担心可能出现的错误/问题。我认为它们是在头文件之前输出的,但不检查错误。
- 好的,我明白了。我当时误解了。我应该删除我的答案吗?
- 这由你决定。但如果你想的话,就等着手术吧。但我怀疑他们(未知)的代码有1到2处错误。
- header("location:samepage.php")已尝试。它不工作
- @Bishwaroopchakraborty所以你只在给出的"答案"中回答我们吗?我在你的问题下发表了很多评论,但没有回复。"它不起作用"对任何人来说都没什么用。所以,我现在就把这个传下去,没有任何评论。祝你好运,我出去了。
- @bishwaroopchakraborty您应该提供当前表单文件的完整代码,因为它不太清楚(除了header()的可能建议,header已经发送并刷新meta http equiv)。
- @埃德文:我明白,但我的两页都包含了一整套1000行的代码,在这里不可能提供,甚至不可能从中挖出部分。
- @Bishwaroopchakraborty,在这种情况下,您应该搜索可能的错误。这可能是很多事情,所以我建议使用exit();行来查看重定向何时停止工作。我再也不能提出任何建议了。
1 2
| // REFRESH PAGE
echo"<meta http-equiv='refresh' content='0'>"; |
- 虽然这段代码可以回答这个问题,但是提供关于如何和/或为什么解决这个问题的额外上下文将提高答案的长期价值。