我有3个下拉列表,其中选择2个下拉列表中的值会触发第3个下拉列表也会发生变化。
例如:
如果第一个下拉列表是 1 ,第二个下拉列表是 名称 ,那么第三个drowpdown列表应该查询数据库并从 1name 中检索行。然后,当我点击第3个下拉列表时,它会显示 1name 中的行。
请帮帮我
答案 0 :(得分:0)
试试这个:
html页面:select.html
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<select id='first' onchange="on_change()">
<option value='1'>1</option>
<option value='2'>2</option>
</select>
<select id='second' onchange="on_change()">
<option value='name'>name</option>
<option value='test'>test</option>
</select>
<select id='third'>
<option value=''>select</option>
</select>
<script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
<script type="text/javascript">
function on_change()
{
var f=$("#first").val();
var s=$("#second").val();
if(f!="" && s !="")
{
$.ajax({
type:"POST",
url:"test.php",
data:{ "first":f,"second":s},
success:function(res)
{
$("#third").html(res);
}
});
}
}
</script>
</body>
</html>
php页面:test.php
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test";
$conn= mysqli_connect("localhost","root","","test");
if($_POST['first'])
{
$str=$_POST['first'].$_POST['second'];
$q="select * from test where cname='".$str."'";
$res=mysqli_query($conn,$q);
$data="";
$flag="0";
while($row=mysqli_fetch_assoc($res))
{
$data .="<option value='".$row['cname']."'>".$row['cname']."</option>";
$flag++;
}
if($flag==0)
{
$data .="<option value=''>not found</option>";
}
echo $data;
}
?>