2013-02-11 58 views
0

我有一個網站上的搜索功能,顯示多組數據。我想用新的發佈數據對其進行排序,但在重新加載相同頁面時保留舊的發佈數據。重新加載頁面併發送新的發佈數據,但保留舊的發佈數據也

這就是說,在page.php例如 - 我運行搜索。它正在尋找來自不同廠商的蘋果和橘子。

因此,我的檢查清單中的發佈數據說明發布蘋果和桔子。

現在頁面重新加載,獲得了我正在尋找蘋果和橘子的信息 - 它會轉到數據庫並拖動所有相關供應商及其產品到頁面。

這就是我目前所處的位置。

現在我的困境。我想在page.php的頂部添加一個說明「按價格排序」的鏈接。還有一個說「按日期排序」。

默認情況下,sql查詢按日期排序,因此已按日期顯示。

現在我的想法來解決這個問題,是創建一個鏈接,讓我發佈到完全相同的頁面。所以,在PHP我能得到的數據(稱之爲ORDER)

if (isset($_POST['Order'])){ 
    $theOrder = $_POST['Order']; 
} 
else { 
    $theOrder = 'Date Desc'; 
} 

現在在我前面的腳本,我可以有去像一個語句:這裏

$query = "SELECT * FROM Products WHERE name = '$products' 
    ORDER BY '$theOrder'"; 

(不綁定只是簡單)

事情是重新加載相同的頁面與新的職位,訂單 - 我現在失去了原來的職位$ _POST ['產品']我傳入$產品。

有沒有辦法保持原來的發佈信息,只需在頁面重新加載/更改$ theOrder?

+0

使用GET請求,而不是職位,提交搜索項並在相同的請求中通過變量進行排序。否則,你將不得不使用cookies和/或會話變量。 – 2013-02-11 01:04:19

+0

你有SQL注入。 – 2013-02-11 01:04:39

+1

@ LawrenceCherone他說:'(這裏沒有任何約束只是爲了簡單)' – Boundless 2013-02-11 01:07:49

回答

1

您可以將此數據存儲到會話中,稍後再檢索它。或者,您可以將原始發佈數據添加到隱藏的輸入字段中,然後當表單再次提交時,您將獲得原始數據以及新數據。

1

只是一個隱藏字段添加到您提交表單包含舊數據

<input type='hidden' name='Products' value='" . $_POST['Products'] . "' /> 

這樣,他們將與$_POST['Products']再次訪問像以前一樣