onchange select做不同的mysql查询

时间:2012-03-07 14:05:05

标签: php jquery html

正如标题所说,我需要onchange的帮助。我有select标签,当我从选择列表中选择一些东西时,我需要做不同的mysql查询。例如:

<select name="list">
<option>cars</option>
<option>busses</option>
<option>trucks</option>
</select>

然后当我选择cars时,它会执行此操作

$query="select * from table where type='cars'";

如果我选择trucks,那么

$query="select * from table where type='trucks'";

依旧......
然后我需要在列表下的div中显示结果 例子

<select name="list">
<option>cars</option>
<option>busses</option>
<option>trucks</option>
</select>
<div> this is where I need to display results from query</div> 

请帮助!!!

3 个答案:

答案 0 :(得分:6)

如果您想通过ajax更改结果:

HTML:

 <select id="list" name="list">

    <option>cars</option>

    <option>busses</option>

    <option>trucks</option>
    </select>
JS文件中的

$(document).ready(function() {
  $('#list').change(function() {
var selected=$(this).val();
  $.get("change_query.php?selected="+selected, function(data){
      $('.result').html(data);

    });
    });
});

你应该创建change_query.php文件以及你的查询和代码并将结果返回给它

$type = $_POST["selected"];

$query="select * from table where type='".$type."'";

在此打印结果....;

  • 告诉我,如果您需要任何帮助,我只是引导您使用Jquery而不是所有代码

答案 1 :(得分:2)

您应该将SELECT代码添加到method属性设置为post的表单中, 当然还有一个提交按钮。 然后,php将获得那些INPUTS的值,并做任何你想做的事。

   $term = $_POST['list'];

/*
In order to prevent unwanted queries or injection add an array with those terms and
check if the posted value is in this array:

*/
    $terms = array("cars" , "trucks");
    if(!array_key_exists($term , $terms))
     die(); //bad bad bad boy.

    $query = "select * from table where type='$term'";

答案 2 :(得分:-1)

你可以使用

onchange="this.form.submit();"