【问题标题】:How to go back without asking to confirm resubmission of the form如何在不要求确认重新提交表格的情况下返回
【发布时间】:2022-10-16 12:06:09
【问题描述】:

我有一个网页,它从名为 datalist.php 的 mysql 数据库中加载所有数据

在此页面上,我可以使用一个按钮逐条编辑记录,该按钮将您重定向到适合记录的 fid 的 editdata.php 页面。

一旦他们想要查看更改进行编辑,我不会将它们重定向到主要的让他们看到更改并简单地单击返回或使用按钮返回到 datalist.php 没有任何问题。

按钮是这个

echo "<p id='parrafo'><a style='padding:1px 20px'class='button rounded-0 primary-bg text-white w-0 btn_1 boxed-btn' href='javascript:history.back()  '><--</a></p>";

问题

我添加了一个搜索引擎,可以过滤显示的数据。

当他们使用 datalist.php 中的搜索引擎时,我将他们引导到一个名为 search engine.php 的页面,在该页面中,通过 post 方法,我将他们正在寻找的内容存储在一个变量中,并显示用户想要的数据。

但是当他们编辑过滤的记录时,它被编辑没有问题,但是当他们返回时,他们返回到 search engine.php 并出现消息:

"确认表单重新提交 为了正确显示,此网页需要您之前输入的数据。您可以再次提交该数据,但这会导致页面重复之前的所有操作。按重新加载提交数据并显示页面。

点击页面刷新按钮重新提交加载页面所需的数据。”

当然,如果它们更新,它们会在过滤数据出来时回来。

是否有任何方法可以存储搜索中使用的变量,以便当我返回时不会收到此错误或任何解决方案?

【问题讨论】:

  • 通常,您不想“返回”到 POST 请求,正是出于这个原因。 “回去”意味着重新播放上一个请求。如果该请求是 POST(或 PUT、DELETE,任何旨在修改数据的内容),那么“返回”意味着提交该请求以再次修改数据。相反,您通常会“前进”到您想要访问的任何页面。您的用户“返回”到什么地方?为什么它需要“返回”而不仅仅是指向他们想要查看的页面的链接?
  • 出于搜索目的,通常您会希望使用 GET 而不是 POST。您可以使用 GET 变量来过滤数据。

标签: php mysql


【解决方案1】:

简单的!当用户提交该变量的表单而不是创建post request
选项1:只需使用 get request __url__?variable=... 但这不会在您返回时记住该变量
选项2:将变量存储在cookie 中,然后转到下一页(例如window.location.href = '...';)。并在下一页从php 访问cookie

【讨论】:

    【解决方案2】:

    如果您想将表单作为确认,但没有其他帖子的可能性,然后删除表单元素和按钮。按原样显示所有其他框(使用 POST 数组填充的值)。

    并显示另一条消息,告诉他们它已经成功。

    您正在使用 PHP,您可以使用它轻松实现此目的。如果您不确定,请在单独的问题中发布简短版本的代码。

    【讨论】:

      猜你喜欢
      • 2020-01-03
      • 2019-12-21
      • 1970-01-01
      • 2012-05-20
      • 1970-01-01
      • 2012-03-19
      • 1970-01-01
      • 2016-12-05
      相关资源
      最近更新 更多