2012-01-08 16 views
0

私は、分類された広告のサイトのユーザーデータベースクエリの結果を表示するPHPページを持っています。ユーザは、ホームページ上で検索を開始し、選択ボックスを使用して検索のパラメータを選択し、フォームが提出される。結果ページに検索機能を追加する方法

結果ページでは、ページの横にある選択ボックス(ホームページのものと同じもの)を使用して検索パラメータを変更できるようにする必要があります。各選択ボックスで選択したオプションを最初のページで選択したものと一致させるにはどうすればよいですか。つまり、ユーザーがmake:AudiとModel:A8を選択した場合、makeとモデルのドロップダウンを行い、他のすべてのオプションを一覧表示しますが、MakeをAudiに、モデルをA8にあらかじめ選択してください。

select文のオプションボックスで選択されたオプションを使用することについて知っていますが、結果ページ用に既にコーディングされたselect文を使用し、最初に選択するオプションの変数を挿入するにはどうすればよいですか?

私はそれが理にかなっていると思います。コードの問題を修正するのではなく、アイデアを探しているので、私はコードを投稿していません。

答えて

0

ユーザーが検索フォームを送信すると、フォームに投稿されたすべての変数を$ _POSTまたは$ _GET経由で利用できます。これらの変数を使用して、結果ページの検索フォームで正しい情報を再選択します。

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

EDIT

動的なデータベース方法:

<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文を必要としています。 はGETパラメータを使用してください。これにより、後で使用できるように結果をブックマークすることができます。

+0

あなたの答えをありがとう。各オプションのif文を実行しているページの読み込み時間にどのような影響がありますか?合計で約12の選択ボックスがあり、それぞれに約20のオプションがあります。 – MaxK

+0

これらの短いリストをループしても、クライアントユーザーの読み込み時間には影響しませんが、あなたのコードはすべてのif文でかなり醜いでしょう。 – Marle1

+0

あなたのケースでは、データベースからリストを取得することを検討します。私はあなたの例を示すために私の答えを編集しました。 – Marle1

関連する問題