提交后替换输入值

时间:2012-09-21 07:27:44

标签: php html

我有一个php文件,允许用户选择搜索页面的条件。提交数据(使用post方法)后,页面会将用户定向到搜索结果页面。我认为用户可能想回到“选择条件页面”来为搜索选择不同的条件。用户可以通过两种方式返回“条件”页面。他们可以点击带有“condition.php”的锚标签,也可以点击浏览器的最后一页按钮(我现在正在使用chrome)。

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

所以,主要是我有两个问题。

  1. 我遇到了什么问题?
  2. 如何解决?
  3. 以下是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">
    

2 个答案:

答案 0 :(得分:0)

您可以使用GET表单将这些条款放在网址中。

如果您不想要它们,要在URL中可见,您将把它们存储在服务器端的会话变量中。

答案 1 :(得分:0)

单击浏览器后退按钮时,浏览器可能会返回缓存版本。如果你在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"/>
输入字段上的

,看看是否修复了它!