0

我有一个填充了数据库值的下拉列表。我想要实现的是为每个值分配一个选择语句。

菜单

填充菜单代码

<?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>";

其次,为您的表单和您的选择元素分配唯一的 ID。然后将表单提交操作分配给选择元素的 onchange 事件。

$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

你需要 javascript 来打开一个带有一些参数的 php 页面。

在 php 中,您从 post 或 get super globals 接收这些参数,然后有一个 switch 语句根据您收到的参数执行不同的查询。

关于“没有提交按钮”,您可以在 javascript 中设置一个侦听器以在值更改时提交表单或触发函数。因为它是一个下拉列表,所以是一个简单的内联 onmouseup="javascript:submitform();" 就足够了

于 2012-04-16T02:38:11.283 回答