2012-09-21 53 views
1

我有一個php文件,允許用戶選擇搜索頁面的條件。提交數據後(使用post方法)頁面將引導用戶進入搜索結果頁面。我認爲用戶可能希望回到「選擇條件頁面」來爲搜索選擇不同的條件。用戶可以通過兩種方式返回到「條件」頁面。他們可以用「condition.php」點擊一個錨標籤,或者點擊瀏覽器的最後一頁按鈕(我現在使用的是Chrome)。提交後輸入值被替換

因此,當我點擊瀏覽器的最後一頁按鈕時,問題或錯誤出現。用於多個條件選擇的隱藏類型輸入的值已更改。看起來後者的輸入值上移並取代原始值。

所以,主要是我有兩個問題。

  1. 我遇到了什麼問題?
  2. 如何解決?

以下是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"> 

回答

0

你可以把使用GET形式URL的條款。

如果你不想讓它們在URL中可見,你將把它們存儲在服務器端的會話變量中。

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"/> 

你的輸入字段,看看是否修復它!

+0

嘗試使用此解決方案後,仍然失敗。 –

+0

您是否在服務器上渲染包含所需表單值的版本? –