代码如下:
<?php
 include("conn.php");
 $sql = "select secondclassname from secondclass";
 $query = mysql_query($sql,$conn);
 ?>
<script language = "JavaScript">
var onecount;
onecount = 0;
subcat = new Array();
<?php
$count=0;
while($rs = mysql_fetch_array($query)){
?>
subcat[<?=$count;?>] = new Array("<?=$rs['secondclassname'];?>","<?=$rs['firstclassname']?>","<?=$rs['id']?>");
<?php
    $count++;
}
?>
onecount=<?=$count?>;
function Getname(name)
{
    document.myform.select_secondclass.length = 1;
    var name=name;
    alert(name);
    var i;
    for (i=0;i < onecount; i++)
    {
        if (subcat[1] == name)
        {
        document.myform.select_secondclass.options[document.myform.select_secondclass.length] = new Option(subcat[0], subcat[2]);
        }
    }
}
</script><form name="myform" method = "post" action="">
选择一级分类:<select name="select_firstclass" onChange="Getname(document.myform.select_secondclass.options[document.myform.select_secondclass.selectedIndex].value)"  >
<option value="">选择一级分类</option>
<?php
$sql = "select firstclassname from firstclass";
$query = mysql_query($sql,$conn);
?>
<?php
while($record=mysql_fetch_array($query)){
?>
<option value="<?php echo $record['firstclassname'];?>">
<?php echo $record['firstclassname']; ?>
</option>
 <?php } ?>
</select>选择二级分类:<select name="select_secondclass">
<option value="">选择二级分类</option>
</select></form>
想要的效果是选中第一个select的某个option时,第二个select出现对应的内容,现在不知哪里出错了,第二个select出现了所有的内容,我通过alert显示Onchang函数传递的参数时,显示为空,问题是不是出在这里啊 

解决方案 »

  1.   

    自己顶,我又看了一下onChange="Getname(document.myform.select_secondclass.options[document.myform.select_secondclass.selectedIndex].value)"  >里面的select_secondclass应该改成select_firstclass,因为应该把第一个select被选中值传给函数进行判断
      

  2.   

    问题出在两个方面:
    一 是你自己说的这个,onChange的问题二 是 
    <?php
     include("conn.php");
     $sql = "select secondclassname from secondclass";
     $query = mysql_query($sql,$conn);
     ?>
    对 select1 传过来的值没有接收,也没有加以引入判断
     $sql = "select secondclassname from secondclass";是读取所有secondclassname值
    应该改成:
    $select_firstclass = $_POST['select_firstclass'];
    $sql = "select secondclassname from secondclass as s inner jion firstclass as f on s.id = f.id";on 后面的表达式要根据你的字段实际情况而顶。
    secondclass 和 firstclass 这两个表需要有关联项,要有外键相联。因为是两个表 需要用到多表连接查询。