0

データベースの値が入力されたドロップダウンリストがあります。私が達成しようとしているのは、各値にselectステートメントを割り当てることです。

メニュー

メニューコードを入力する

<?php
require 'conn.php';

$filter=mysql_query("select distinct fuel_type from car");
while($row = mysql_fetch_array($filter)) {
$options .="<option>" . $row['fuel_type'] . "</option>";

$menu="<form id='filter' name='filter' method='post' action=''>
  <p><label>Filter</label></p>
    <select name='filter' id='filter'>
      " . $options . "
    </select>
</form>";
}
echo $menu;
?>

これで、このメニューは車のリストを除外するために使用され、サイドバーに配置されます 車

ドロップダウンリストから各値を次のような異なる選択ステートメントに割り当てるにはどうすればよいですか。 select * from car where fuel_type = (dropdown list value selected)フォームを送信する必要はありません。

おそらく次のようなものですか?

    if($_GET["filter"] == 'Petrol'){
$query=mysql_query("select * from car where fuel_type = 'Petrol'");
header("Location: cars.php");
}
4

2 に答える 2

1

まず、オプションタグを作成するときに、SQLクエリでフィルタリングする値をvalue属性に割り当てます。

$options .="<option value='".$row['fuel_type']."'>" . $row['fuel_type'] . "</option>";

次に、フォームとselect要素に一意のIDを割り当てます。次に、フォーム送信アクションをselectelementsonchangeイベントに割り当てます。

$menu="<form id='filterForm' name='filterForm' method='post' action=''>
  <p><label>Filter</label></p>
    <select name='filter' id='filter' onchange='document.getElementById("filterForm").submit()'>
      " . $options . "
    </select>
</form>";
}

これで、選択オプションを変更すると、フォームが送信され、選択されたオプション値が選択要素#filterの値として入力されます。

フォームが投稿するphpページで、IDが#filterのselect要素の値を確認してクエリを作成します。

于 2012-04-16T02:44:45.617 に答える
0

いくつかのパラメータを使用してphpページを開くにはjavascriptが必要です。

PHPでは、postからこれらのパラメーターを受け取るか、スーパーグローバルを取得してから、受け取ったパラメーターに応じて異なるクエリを実行するswitchステートメントを使用します。

'送信ボタンなしで'に関しては、フォームを送信したり、値が変更されたときに関数をトリガーしたりするために、JavaScriptでリスナーを設定できます。ドロップダウンなので、単純なインラインonmouseup = "javascript:submitform();" 十分であろう

于 2012-04-16T02:38:11.283 に答える