
思路大概就是,在第一个下拉菜单里中添加change事件的监听,然后在触发change时向后台发送一个ajax请求,然颂耐后通过后台返回的内容,动态更新第二个下拉列表
等下给你上例子
我用的是ADODB连接的 SQL Server至于怎么连数据库,你就自己看着办吧
前台
<!doctype html><html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
</head>
<?php
require_once('../include/SQL_inc/adodb5/adodb.inc.php')
$SQL_connect_str = "PROVIDER=MSDASQLDRIVER={SQL Server}SERVER={KASIM-PC\SQLEXPRESS}DATABASE=mytestUID=saPWD=sa"
$db = NewADOConnection("ado_mssql")
$db->Connect($SQL_connect_str)
$db->Execute("set names utf8")
?>野盯春
<script src="../java.inc.bag/jquery-1.9.1.min.js"></script>
<body>
<select id="list1">
<option></option>
<?php
$sqlFlist = "SELECT DISTINCT firstList from list"
$result = $db->Execute($sqlFlist)
while(!$result->EOF){
echo "<option>".mb_convert_encoding($result->fields[0], "UTF-8", "GBK")."</option>"
$result->MoveNext()
}
?>
</select>
<div id="list2box"></div>
</body>
<script>
$("#list1").change(function(e) {
$.ajax({
url:"back.php",
type:"POST",
data:{key:$("#list1").val()},
dataType:"json",
success: function(backdata){
inner = "<select id=\"list2\">"
for(i = 0 i < backdata.length i++)
inner+="<option>"+backdata[i]+"</option>"
inner += "</select>"
$("#list2box").html(inner)
},
error: function(XMLHttpRequest, textStatus, errorThrown){
alert(textStatus)
}
})
})
</script>
</html>
后台
<?phpif(isset($_POST['key'])){
require_once('../include/SQL_inc/adodb5/adodb.inc.php')
$SQL_connect_str 则册= "PROVIDER=MSDASQLDRIVER={SQL Server}SERVER={KASIM-PC\SQLEXPRESS}DATABASE=mytestUID=saPWD=sa"
$db = NewADOConnection("ado_mssql")
$db->Connect($SQL_connect_str)
$db->Execute("set names utf8")
$sqlstr = "select dtl from list where firstList = '".mb_convert_encoding($_POST['key'], "GBK", "UTF-8")."'"
$result = $db->Execute($sqlstr)
$backValue = array()
$i = 0
while(!$result->EOF){
$backValue[$i] = $result->fields[0]
$result->MoveNext()
$i++
}
echo json_encode($backValue)
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)