無論用戶何時嘗試通過$ _GET瀏覽第二頁,如果他們已經提交了$ _POST數據,我都會遇到問題。
if(!isset($_POST['submit'])) {
//search input box
}
else {
//search details output
//pagination code
}
每當用戶按下第2頁,它顯示//search input box
回來。
我想搜索顯示頁面2而不是//search input box
回來。
無論用戶何時嘗試通過$ _GET瀏覽第二頁,如果他們已經提交了$ _POST數據,我都會遇到問題。
if(!isset($_POST['submit'])) {
//search input box
}
else {
//search details output
//pagination code
}
每當用戶按下第2頁,它顯示//search input box
回來。
我想搜索顯示頁面2而不是//search input box
回來。
As @Alan說...第2頁沒有收到POST
數據,所以submit
沒有設置,它認爲應該再次顯示起始格式。第二GET
變量(例如page
)跟蹤的結果頁,將允許所有三個頁面(啓動,第1頁+提交,第2頁)
if (isset($_REQUEST["page"])) {
//No data received, but reviewing & page-display code should go here
} elseif (isset($_POST["submit"])) {
//POST-processing code goes here
// Page-switching URL should be something like:
// <a href="results.php?page=2">Page 2</a>
} else {
//Nothing posted, not paging - show input
//search input box
}
不要忘記存儲你的數據POST
暫時地方,這樣你有數據顯示在頁面上。
類似於您的邏輯的接縫扭曲。只需看看你的代碼和附加評論:
// if POST submit is NOT set
if(!isset($_POST['submit'])) {
// show search input box
}
這是因爲你沒有發送POST數據到第二頁。
$_GET
和$_POST
是根據請求設置的。如果要保存第一個POST數據,則需要使用會話並將其存儲在會話中,或將POST數據返回到您的頁面並重新提交。
獲取該值。 – cicakman 2010-10-27 13:54:46
它會是怎樣的?正如其他人所說的,你需要告訴我們更多關於你在做什麼以及你想要我們幫助的事情。 – 2010-10-27 14:03:35
您不應該通過POST提交搜索請求。搜索是一種理想適用於GET請求和查詢字符串的只讀操作。您所要做的就是修改查詢字符串,以包含類似&page=2
的內容,以便將鏈接添加到鏈接中。
更好的方法是將表單處理分割成自己的腳本。這使得它更有組織和更合理,以便您可以通過AJAX更輕鬆地執行POST等操作。解決我看到的其他問題的提示是,如果您有多頁表單,則應將它們在前一頁上提交的數據存儲在某處。一個常見的地方是會話數據。還有其他一些方法可以將它們全部存儲在JavaScript數據對象中,直到表單完成。看看使用框架,他們會幫助。
好的,但是有什麼問題? – 2010-10-27 13:53:11
我不確定你的問題是什麼......我認爲你正在尋找'$ _REQUEST ['']'。如果提交'$ _GET ['asdf']'或'$ _POST ['asdf']',那麼您可以通過'$ _REQUEST ['asdf']' – Entity 2010-10-27 13:53:57