Php 提交后将替换输入值

Php 提交后将替换输入值,php,html,Php,Html,我有一个php文件,允许用户为搜索页面选择条件。提交数据后(使用post方法),页面将引导用户进入搜索结果页面。我认为用户可能希望返回“选择条件页面”为搜索选择不同的条件。用户可以通过两种方式返回“条件”页面。他们可以单击带有“condition.php”的锚定标记,或者单击浏览器的最后一页按钮(我现在正在使用chrome) 因此,当我单击浏览器的“最后一页”按钮时,问题或错误就出现了。多个条件选择的隐藏类型输入值已更改。似乎后一个输入值向上移动并取代了原始值 所以,我主要有两个问题 我遇到了什

我有一个php文件,允许用户为搜索页面选择条件。提交数据后(使用
post
方法),页面将引导用户进入搜索结果页面。我认为用户可能希望返回“选择条件页面”为搜索选择不同的条件。用户可以通过两种方式返回“条件”页面。他们可以单击带有“condition.php”的锚定标记,或者单击浏览器的最后一页按钮(我现在正在使用chrome)

因此,当我单击浏览器的“最后一页”按钮时,问题或错误就出现了。多个条件选择的隐藏类型输入值已更改。似乎后一个输入值向上移动并取代了原始值

所以,我主要有两个问题

  • 我遇到了什么问题
  • 如何修复它
  • 以下是html示例的一部分:

    <form method="post" action"search-result.php">
    <div id="category">
      <ul id="002001000">
        <li><input type="hidden" value="002001001">freestyle</li>                       
        <li><input type="hidden" value="002001002">frogstyle</li>
      </ul>
      <ul id="002003000">
        <li><input type="hidden" value="002003001">math</li>
        <li><input type="hidden" value="002003002">English</li>
        <li><input type="hidden" value="002003003">Biology</li>
      </ul>
    </div>
    
    <div id="location_list">
      <div id="region">
        <ul>
          <li rel="asia"><input type="hidden" value="Asia(Taiwan,Japan)">Asia</li>
          <li rel="america"><input type="hidden" value="America(USA,Canada)">America</li>
        </ul>
      </div>
      <div id="nation">
        <ul id="asia">
          <li><input type="hidden" value="Taiwan">Taiwan</li>
          <li><input type="hidden" value="Japan">Japan</li>
        </ul>
        <ul id="america">
          <li><input type="hidden" value="USA">USA</li>
          <li><input type="hidden" value="Canada">Canada</li>
        </ul>
      </div>
    </div>
    <input type="submit">
    </form>
    
    
    
    • 自由泳
    • 蛙式
    • 数学
    • 英式
    • 生物学
      亚洲 美国
    • 台湾
    • 日本
    • 美国
    • 加拿大
    如果我点击“英语”,例如提交,直接到搜索结果页面,然后我点击“最后一页”按钮返回此条件页面,“英语”的值和下面的其他值将被替换如下:

    <div id="category">
      <ul id="002001000">
        <li><input type="hidden" value="002001001">freestyle</li>                       
        <li><input type="hidden" value="002001002">frogstyle</li>
      </ul>
      <ul id="002003000">
        <li><input type="hidden" value="002003001">math</li>
        <li><input type="hidden" value="002003002">English</li>
        <li><input type="hidden" value="Asia(Taiwan,Japan)">Biology</li>
      </ul>
    </div>
    
    <div id="location_list">
      <div id="region">
        <ul>
          <li rel="asia"><input type="hidden" value="America(USA,Canada)">Asia</li>
          <li rel="america"><input type="hidden" value="Taiwan">America</li>
        </ul>
      </div>
      <div id="nation">
        <ul id="asia">
          <li><input type="hidden" value="Japan">Taiwan</li>
          <li><input type="hidden" value="USA">Japan</li>
        </ul>
        <ul id="america">
          <li><input type="hidden" value="Canada">USA</li>
          <li><input type="hidden" value="Canada">Canada</li>
        </ul>
      </div>
    </div>
    <input type="submit">
    
    
    
    • 自由泳
    • 蛙式
    • 数学
    • 英式
    • 生物学
      亚洲 美国
    • 台湾
    • 日本
    • 美国
    • 加拿大

    您可以使用GET表单将术语放入URL中


    如果不希望它们在URL中可见,则必须将它们存储在服务器端的会话变量中。

    单击“浏览器返回”按钮时,浏览器可能会返回缓存版本。如果在php页面中使用它,它将不会被缓存

    header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
    header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
    
    这将解决这个问题,因为它将从服务器获得一个新页面。当然,您仍然应该填写服务器上的字段。。。否则,它可能与输入字段的自动完成有关。使用

    <input autocomplete="off"/>
    
    
    

    在您的输入字段上,查看是否修复了它

    尝试使用此解决方案后,仍然失败。是否在服务器上呈现包含所需表单值的版本?