日期:2014-05-17  浏览次数:20516 次

PHP+mysql实现二级级联下拉框的问题
请教大虾门,PHP+mysql实现二级级联下拉框,解决班级很多的情况下,先选择入学年份再选择属于这一年的班级的问题。
  第一个下拉框中的年份可以读出来,但是当选择某一年之后,班级下拉框中什么都没有显示,代码如下,请大虾们看看问题出在哪儿,谢谢了先
<?
/***********************************************
** 
** 数据库:数据库名(alumni)、数据表(enteryear、banji)
** 表enteryear中字段:enter_id(id编号)、entertime(年份)
** 表banji中的字段:id(id编号)、classnum(班级号)、enteryear(年份)
***********************************************/
//****************** 连接选择数据库 ***************
$link = mysql_connect("localhost", "root", "")
  or die("Could not connect : " . mysql_error()); 
mysql_select_db("alumni") or die("Could not select database");


//******************提取省份信息******************
$sqlSel = "select * from enteryear order by enter_id ";
$result = mysql_query($sqlSel) or die("Query failed : " . mysql_error()); 

$forum_data = array();
while( $row = mysql_fetch_array($result) )
{
  $forum_data[] = $row;
}
//print_r ($forum_data);
mysql_free_result($result);

//**************获取城市信息**************  
$sqlSel2 = "select * from banji order by id desc";

if( !($result2 = mysql_query($sqlSel2)) )
{
  die('Could not query t_city list');
}

$forum_data2 = array();
while( $row2 = mysql_fetch_array($result2) )
{
  $forum_data2[] = $row2;
}

mysql_free_result($result2);
?>

<!--************ JavaScript处理province--onChange *************-->
<script language = "JavaScript"> 
var onecount2; 
subcat2 = new Array(); 
<?php 
$num2 = count($forum_data2);
?>
onecount2=<? echo $num2;?>;
<?
for($j=0;$j<$num2;$j++)
{
?>
subcat2[<? echo $j;?>] = new Array("<? echo $forum_data2[$j]['id'];?>","<? echo $forum_data2[$j]['classnum'];?>","<? echo $forum_data2[$j]['entertime'];?>");
<?
 }
?> 
function changelocation(id) 

document.myform.classnum.length = 0; 
var id=id; 
var j; 
document.myform.classnum.options[0] = new Option('==选择班级==',''); 
for (j=0;j < onecount2; j++) 

if (subcat2[j][1] == id) 
  { 
  document.myform.classnum.options[document.myform.classnum.length] = new Option(subcat2[j][2], subcat2[j][0]); 
  } 

}
</script> 

<!--********************页面表单*************************-->
<form name="myform" method="post"> 
入学年份:<select name="entertime" onChange="changelocation(document.myform.entertime.options[document.myform.entertime.selectedIndex].value)" size="1"> 
<option selected>请选择入学年份</option> 
   
<?php 
$num = count($forum_data);

for($i=0;$i<$num;$i++)
{
?>
<option value="<? echo $forum_data[$i]['enter_id'];?>"><? echo $forum_data[$i]['entertime'];?></option> 
<? 
}
?>
</select>

<SELECT name="classnum" size=1 id="classnum">
<option selected value="">==选择班级==</option> 
</select>
</form>

------解决方案--------------------
哦,我之前也遇到过类似问题,解决了就好,哈哈。。。