之前我问过这个问题,但我认为我太复杂了,如果选择列表中的值,我想分配一个查询。
<form id="filter" name="filter" method="post" action="">
<select>
<option value="petrol">Petrol</option>
<option value="diesel">Diesel</option>
</select>
<p><input name="filter" type="button" value="Filter" /></p>
</form>
我想要实现的是,如果用户选择汽油,则运行以下查询
$query = mysql_query("SELECT fuel_type from car WHERE fuel_type = 'petrol'");
答案 0 :(得分:2)
<form id="filter" name="filter" method="post" action="">
<select id="college" name="fuel" onchange="changeValue();">
<option value="petrol">Petrol</option>
<option value="diesel">Diesel</option>
</select>
<p><input name="filter" type="button" value="Filter" /></p>
</form>
如果您想以表格提交方式发布值
$ctext = $_POST['fuel'];
$list = mysql_query("SELECT fuel_type from car WHERE fuel_type ='$ctext'");
$row = mysql_fetch_array($list);
//process $row
如果您不想提交表单,可以在onchange事件中使用jquery ... js代码
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
function changeValue() {
var ctext = $("#college option:selected").val();
$.ajax({ url: "yourfile.php",
data: {"ctext":ctext},
type: 'post',
success: function(output) {
//display output here
}
});
}
yourfile.php
<?php
//connect to db
$ctext = $_POST['ctext'];
$list = mysql_query("SELECT fuel_type from car WHERE fuel_type ='$ctext'");
$row = mysql_fetch_array($list);
echo $row['fuel_type'];
?>
答案 1 :(得分:0)
为您的选择标记命名:
<select name="fuel">
<option value="petrol">Petrol</option>
<option value="diesel">Diesel</option>
</select>
然后在PHP中你可以做一些简单的事情:
<?php
if(isset($_POST['cmdFilter']))
{
echo "You selected the fuel type: " . $_POST['fuel'];
}
?>
您也可以将select设置为具有id,并使用JQuery发送ajax请求,通过$("#myIdforSelect").val()
P.S
务必清理您的输入;)
答案 2 :(得分:0)
虽然我也建议使用AJAX方法,但我只想说明你没有使用AJAX来实现这一点。
如果您的过滤器选项不是太复杂或太多,那么您只需在加载时对任何级别的过滤器树执行所有可用选项的拉动并最初隐藏它们。然后,当用户向下钻取每个部分时,相应地向他们显示下一个部分(通过javscript)。最后,您只需通过GET或POST提交包含所有选定表单字段的常规表单。
这可以通过减少对服务器的调用来有效地节省带宽:)
但是如果您的选择树太复杂,那么在用户交互上运行AJAX请求可能会更好。