PHP将select语句分配给下拉列表值

时间:2012-04-16 02:27:37

标签: php mysql

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

menu

填充菜单代码

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

现在此菜单将用于过滤掉汽车列表,并将放在侧栏上 cars

如何从下拉列表中为每个值分配一个不同的select语句,如: 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");
}

2 个答案:

答案 0 :(得分:1)

首先,在构建选项标记时,将要在SQL查询中过滤的值分配给value属性:

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

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

$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>";
}

现在,当您更改选择选项时,将提交表单,并且选择的选项值将填充为select元素#filter的值。

在表单发布到的php页面上,检查id为#filter的select元素的值,以构建查询。

答案 1 :(得分:0)

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

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

关于“没有提交按钮”,你可以在javascript中设置一个监听器来提交表单或在值改变时触发一个函数。因为它是一个简单的内联onmouseup =“javascript:submitform();”将足够