2012-01-08 98 views
0

我有一個PHP頁面,顯示分類廣告網站的用戶數據庫查詢結果。用戶在主頁上啓動搜索並使用選擇框選擇搜索參數,然後提交表單。如何將修改搜索功能添加到結果頁面

一旦在結果頁面上,我需要允許用戶使用頁面側面的選擇框(主頁上的相同頁面)來修改搜索參數。我如何着手使每個選擇框中選擇的選項與第一頁上選擇的選項相匹配。即如果用戶選擇製造:奧迪和型號:A8我希望製造商和型號下拉列出所有其他選項,但是已經預先選擇了奧迪並且該型號預先選擇了A8。

我知道如何在選擇語句中爲選項框選擇選項,但是如何獲取已經爲結果頁編碼的select語句併爲應該先選擇的選項插入選定變量。

我希望這是有道理的。我沒有發佈任何代碼,因爲我在尋找想法,而不是幫助解決代碼問題。

回答

0

當用戶提交搜索表單時,表單中發佈的所有變量都可以通過$ _POST或$ _GET獲取。使用這些變量在結果頁面上的搜索表單中重新選擇正確的信息。

<select name="model"> 
    <option value="a8" <?php echo (isset($_POST['model']) && $_POST['model'] == 'a8') ? 'selected' : ''; ?>>A8</option> 
</select> 

編輯

動態數據庫的方式:

<select name="model"> 
<?php 
$getRows = mysql_query("SELECT * FROM models"); 
while($row = mysql_fetch_assoc($getRows)) 
{ 
    echo '<option value="" ' . ((isset($_GET['model']) && $_GET['model'] == $row['model']) ? 'selected' : '') . '></option>'; 
} 
?> 
</select> 

現在你只需要一個if語句。你應該btw 使用GET參數,以便用戶有機會書籤結果供以後使用。

+0

感謝您的回答。如果每個選項的語句都會對頁面加載時間運行產生什麼影響?共有大約12個選擇框,每個選項大約有20個選項。 – MaxK 2012-01-08 13:23:45

+0

循環這些簡短列表不會影響客戶端用戶的加載時間,但是對於所有這些if語句,您的代碼將非常難看 – Marle1 2012-01-08 18:23:06

+0

在您的情況下,我會考慮從數據庫中提取列表,這將有助於簡化您的代碼。我編輯了我的答案,向你展示一個例子。 – Marle1 2012-01-08 20:40:41