有两个下拉列表框。当第一个列表框的值改变时,第二个列表框对应着改变。
比如第一个值为姓名时,第二个自动添加,张三,李四.....
第一个为班级时,第二个自动添加一班,二班.....。
有些人说PHP不能处理列表框change事件。是不是哟。如果不是,哪位高手能帮忙回答一下。

解决方案 »

  1.   

    两级联动。给你一个简单的例子。<html>
    <head>
    </head>
    <body>
    <script language="javascript">
    <!--
    var subcat = new Array();
    subcat[0] = new Array('10','1','=1')
    subcat[1] = new Array('10','2','=2')
    subcat[2] = new Array('10','3','=3')
    subcat[3] = new Array('10','4','=4')
    subcat[4] = new Array('10','5','=5')
    subcat[5] = new Array('10','6','=6')
    subcat[6] = new Array('10','7','=7')
    subcat[7] = new Array('10','8','=8')
    subcat[8] = new Array('10','9','=9')
    subcat[9] = new Array('10','10','=10')
    subcat[10] = new Array('20','11','=11')
    subcat[11] = new Array('20','12','=12')
    subcat[12] = new Array('20','13','=13')
    subcat[13] = new Array('20','14','=14')
    subcat[14] = new Array('20','15','=15')
    subcat[15] = new Array('20','16','=16')
    subcat[16] = new Array('20','17','=17')
    subcat[17] = new Array('20','18','=18')
    subcat[18] = new Array('20','19','=19')
    subcat[19] = new Array('20','20','=20')
    function changeselect1(locationid)
    {
            document.form1.s2.length = 0;                              //初始化下拉列表 清空下拉数据
            document.form1.s2.options[0] = new Option('==请选择==',''); //给第一个值
            for (i=0; i<subcat.length; i++)                            //legth=20
            {
                    if (subcat[i][0] == locationid)                    //[0] [1] 第一列 第二列
                    {document.form1.s2.options[document.form1.s2.length] = new Option(subcat[i][1], subcat[i][2]);}                                    //建立option
        //第一次 length=1 因为有==请选择==
        //i=9时 length= 10 值有11个 因为从0数起 subcat[i][0] == locationid屏蔽了再写
            }
    }
    //-->
    </script><form name="form1">
    二级联动:<select name="s1" onChange="changeselect1(this.value)">
    <option>==请选择==</option>
    <option value="10">1-10</option>
    <option value="20">11-20</option>
    </select><select name="s2" onChange="alert(this.value)">
    <option>==请选择==</option>
    </select></form>
    http://blog.csdn.net/jawsy/archive/2005/06/06/388658.aspx
      

  2.   

    那个是客户端事件,一般是由javascript处理的
    如果数据很多,也可以列表框变了后,由javascript很后台请求第二个框里面的内容
    但一般都可以在页面上返回一个二维数组来处理两个列表框
      

  3.   

    如果你返回的数据是根据第一个框为条件的,那么就要用到AJAX去处理,然后填充到第二个框。如果不用的,二楼的也是一个例子
      

  4.   

    1楼的说很详细,可是我是菜鸟。PHP刚刚自学。更别说JS了。谢谢1楼朋友的热心。但是我把代码贴过去,提示网页有错。数据依然没有添加到第二个列表框中。还请1楼的朋友能不能解释清楚一点。
    另外其他的朋友,如果有其它方法,能说得详细一点吗
    谢谢!!!
      

  5.   

    恩  联动还是JS或者AJAX好 php稍微麻烦
    如果连动出来的内容比较多 且不固定 最好就是AJAX了如果非用PHP也能做  SELECT里面写一个 onchenge= “submit()”;
    PS:第一个选择列表一改变 就提交页面 获取页面获取到第一个select提交的值以后 根据得到的值搜索第二个列表对应应该显示的内容 然后页面显示的时候内容就和第一个联动了