mysql php无刷新三级联动菜单
一款联动菜单,利用了js php mysql实现的无刷新效果,有需要的朋友可以直接下载哦。
<script language="JavaScript" type="text/">
function removeOptions(selectObj) {
if (typeof selectObj != 'object') {
selectObj = document.getElementById(selectObj);
} // 原有选项计数
var len = selectObj.options.length;
for (var i = 0; i < len; i++) { // 移除当前选项
selectObj.options[0] = null;
}
}
function setSelectOption(selectObj, optionList, firstOption, selected) {
if (typeof selectObj != 'object') {
selectObj = document.getElementById(selectObj);
} // 清空选项
removeOptions(selectObj); // 选项计数
var start = 0; // 如果需要添加第一个选项
if (firstOption) {
selectObj.options[0] = new Option(firstOption, ''); // 选项计数从 1 开始
start++;
}
var len = optionList.length;
for (var i = 0; i < len; i++) { // 设置 option
selectObj.options[start] = new Option(optionList[i].txt, optionList[i].val); // 选中项
if (selected == optionList[i].val) {
selectObj.options[start].selected = true;
} // 计数加 1
start++;
}
} //-->
var sidArr = [];
<?php
$sql = "select * from ptypes where sid = 0 and ssid =0";
$result = mysql_query($sql, $conn) or die("查询数据库出错1");
while ($row = mysql_fetch_object($result)) {
$i = 0;
$rs2 = "";
$sql2 = "select * from ptypes where sid='" . $row->id . "'";
$result2 = mysql_query($sql2, $conn) or die("查询数据出错2");
while ($row2 = mysql_fetch_object($result2)) {
if ($i == 0) {
$t = "";
} else {
$t = ",";
}
$rs2.= $t . "{txt:'" . $row2->title . "',val:'" . $row2->id . "'}n";
$n = 0;
$rs3 = "";
$sql3 = "select * from ptypes where ssid='" . $row2->id . "'";
$result3 = mysql_query($sql3, $conn) or die("查询是数据库出错3");
while ($row3 = mysql_fetch_object($result3)) {
if ($n == 0) {
$t1 = "";
} else {
$t1 = ",";
}
$rs3.= $t1 . "{txt:'" . $row3->title . "',val:'" . $row3->id . "'}n";
$n = 1;
}
echo ("sidArr['" . $row2->id . "']=[" . $rs3 . "];");
$i = 1;
}
echo ("sidArr['" . $row->id . "']=[" . $rs2 . "];");
}
?>
function setCity(province) {
removeOptions(document.getElementById('sid'));
removeOptions(document.getElementById('ssid'));
setSelectOption('sid', "", '-请选择-');
setSelectOption('ssid', "", '-请选择-');
if (!sidArr[province] || sidArr[province] == "") {
document.getElementById('sid').disabled = true;
document.getElementById('ssid').disabled = true;
} else {
document.getElementById('sid').disabled = false;
document.getElementById('ssid').disabled = false;
setSelectOption('sid', sidArr[province], '-请选择-');
}
}
function setssid(province) {
removeOptions(document.getElementById('ssid'));
setSelectOption('ssid', "", '-请选择-');
if (!sidArr[province] || sidArr[province] == "") {
document.getElementById('ssid').disabled = true;
} else {
document.getElementById('ssid').disabled = false;
setSelectOption('ssid', sidArr[province], '-请选择-');
}
}
</script>
<select name="province" id="province" onchange="if(this.value != '') setCity(this.options[this.selectedIndex].value);">
<option value="">-请选择-</option>
<?php
$sql = "select * from ptypes where sid=0 and ssid = 0";
$result = mysql_query($sql, $conn) or die("返回数据记录出错!");
while ($row = mysql_fetch_object($result)) {
echo ("<option value='" . $row->id . "'>" . $row->title . "</option>");
}
?>
</select> 一级
<select name="sid" id="sid" onchange="if(this.value != '') setssid(this.options[this.selectedIndex].value);" >
<option value="">-请选择-</option>
</select> 二级
<select name="ssid" id="ssid">
<option value="">-请选择-</option>
</select> 三级本文地址:http://www.phprm.com/develop/fs994.html
转载随意,但请附上文章地址:-)