2011-09-07 76 views
0

我有一個搜索表單在一個頁面上的複選框,以縮小結果的範圍,我的目標是「保留」表單的內容(已選中的複選框等),當用戶更改頁面時(有一個Zend分頁程序它負責搜索結果的makinbg頁面)。有沒有辦法同時提交表單和鏈接?

我在$ _SESSION中使用了一個名爲formInv的變量,它保存了$ _POST的內容,但在這種特殊情況下,我必須在填充$ _POST之後取消它的設置,因爲我不希望它再次發生if我瀏覽網站上的其他頁面。

我得到的想法是把paginator上的處理程序,它會調用一個ajax函數,將提交到動態php頁面的唯一目的是提交後保存$ _POST到formInv,當然我會必須通過jQuery修改「action」屬性以指向動態頁面,但paginator已經有一個鏈接實際上轉到您點擊的頁面的數量,因此可以提交表單,將數據保存到formInv然後進入點擊頁面?

+0

爲什麼不試試呢? –

回答

0

IMO如果是搜索頁面,那麼使用GET方法是一種很好的做法。然後你可以直接將參數放在頁面的鏈接中。

+0

我認爲這不會起作用,因爲我的表單的「操作」設置爲保留在同一頁面上以顯示結果,並且我希望在使用分頁程序更改頁面時提交該表單,這就是爲什麼我要在動態的PHP頁面與Ajax。 此外,我有超過100個複選框(型號,年份等),這將不是很好,把他們都在網址中,我會有乾淨的網址:) 使用GET是好的,如果你搜索與字符串的字符或兩個,我猜 – Narvath

+0

行動是否是相同的頁面並不重要,在「site.com/search」之後,您着陸於「site.com/search?q=abc&check=1&something=else」 。我看不到任何理由擔心* search *頁面中的乾淨網址 - 它應該是動態的!此外,您可以將鏈接傳遞給其他人的搜索結果頁面。 – andr

+0

好吧,我會盡力做到這一點,不知道它是否會與Zend的路由器,雖然=/ 謝謝! – Narvath

0

刪除paginator中的'hrefs'並將其替換爲span/li。然後將一個onclick事件綁定到span/li,它將向表單添加一個隱藏元素。隱藏的值將有下一頁的頁面號。因此,您可以對結果進行分頁並在表單中維護數據。

<ul> 
<li onclick="Pagination(2,'filterform');"><span>2</span></li> 
<li onclick="Pagination(3,'filterform');"><span>3</span></li> 
</ul> 


function Pagination (page, formId) 
{ 
$('<input>').attr({ type: 'hidden',name: 'p',value: page}).appendTo($("#"+formId)); 
$("#"+formId).submit(); 
} 
相關問題