JavaScript实际应用:简单二级联动菜单实现

<?php
class myconn{

var $conn;
var $result;

function myconn(){
   $this->conn=mysql_connect('localhost','root','1234');
   mysql_select_db('allin',$this->conn);
}

function process($sql){
   mysql_query('set names gbk');
   $result=mysql_query($sql);
   return $result;
}


}

?>
<form name="frm">
<select name="s1" onChange="redirec(document.frm.s1.options.selectedIndex)">

<option selected>请选择</option>

<?php
$conn=new myconn();
$sql="select * from topclass where parentid=0";
$result=$conn->process($sql);
while($data=mysql_fetch_array($result))
{
?>


<option value="<?php echo $data[0];?>"><?php echo $data[2];?></option>

<?php
   }

?>
</select>

<select name="s2">
<option value="请选择" selected>请选择</option>
</select>
</form>


<script language="javascript">


//获取一级菜单长度
var select1_len = document.frm.s1.options.length;
var select2 = new Array(select1_len);

//把一级菜单都设为数组
for (i=0; i<select1_len; i++)
{
select2[i] = new Array();
}


<?php
$conn=new myconn();
$sql="select * from topclass where parentid=0";
$result=$conn->process($sql);
$i=1;
while($data=mysql_fetch_array($result))
{
   $sql="select name from topclass where parentid='$data[0]'";
   $result2=$conn->process($sql);
   ?>select2[<?php echo ($i);?>][0] = new Option("==请选择==", " ");<?
   $j=1;
while($data2=mysql_fetch_array($result2))
{
?>
   select2[<?php echo ($i);?>][<?php echo $j;?>] = new Option("<?php echo $data2[0];?>", "<?php echo $data2[0];?>");
 

<?php
$j++;
}

$i++;

}

?>
function redirec(x)
{

document.frm.s2.length=1;
var temp = document.frm.s2;
for (i=0;i<select2[x].length;i++)
{
temp.options[i]=new Option(select2[x][i].text,select2[x][i].value);
}

if(select2[x].length==0)temp.options[0]=new Option("",""); //如果一级菜单为的子菜单项为空的时候,选择此一级菜单的时候,二级显示为空
temp.options[0].selected=true;

}
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值