PHP:在同一页面上执行表单操作,直到刷新仍然显示相同

时间:2011-01-04 18:34:59

标签: php caching forms

是的,我有一个小编辑个人资料页面index.php?mode=profile。让我们以editprofile形式的用户名为例。用户名已在用户名字段中。所以我从“彼得”改为“汤姆”,然后按保存。

行动是?mode=profile&edit=true。所以现在当我按下save时,它已经更新了从Peter到Tom的db中的列。但是这个字段保持值“Peter”,直到我按下刷新(或f5),然后“Tom”将出现。就像它没有在数据库中更新任何东西,尽管它确实如此,但它仍然显示彼得直到下次刷新..喜欢它缓存,但它不应该缓存什么?

对此有何帮助?是因为它在同一个“页面”/文件中吗?我该怎么办

4 个答案:

答案 0 :(得分:0)

我认为您首先获取数据,将其放入表单中,然后更新数据库内容。提交表单时,应首先更新数据库内容。表格的获取和创建应该是下一步。

答案 1 :(得分:0)

您很可能在进行任何配置文件修改之前呈现页面。确保在呈现之前处理对配置文件的更改(即,所有数据库调用更新值应该在SELECT语句之前呈现页面)。

答案 2 :(得分:0)

您可以做的是在表单的每个输入字段中只显示各个字段的post post值。

例如 -

让我们举一个用户名字段的例子 -

<input type="text" name="username" value='<?php echo $_POST['username']?>' />

通过这种方式,如果您发布任何字段,那么将显示该值,而不是来自缓存。

在上面的示例中,我没有清理帖子数据,请确保使用已清理的帖子数据 在实际情况中。

答案 3 :(得分:0)

HTTP提供了两种方法:POST和GET。 URL以?param =开头,您实际上正在使用GET。当且仅当表单处理是幂等查询时才应使用“GET”(即页面内容不会被查询更改)。

如果您的表单修改了数据,则应使用POST方法。