这是一个例子你做相应改动吧.
<?
$maintype=array(0=>"","a","b","c");
$sub1=array(0=>"","a1","a2","a3");
$sub2=array(0=>"","b1","b2","b3");
$sub3=array(0=>"","c1","c2","c3");?>
<select name=maintype></select>
<select name=sub></select>
<input name=result><script>
var arrSel=["maintype","sub"];//arrSel定义了要修改的下拉框
var i=0,arrData=[];//arrData中搁的是数据,每条都显示各级的数据
<?
for($i=0;$i<count($maintype);$i++){
$var="sub".$i;
if($$var){
$tmp=$$var;
for($j=0;$j<count($tmp);$j++){

?>
arrData[i++]=["<?=$maintype[$i]?>","<?=$tmp[$j]?>"]
<?
}
}else{
?>
arrData[i++]=["<?=$maintype[$i]?>",""]
<?

}
}
?>
</script>
<script>
function qswhInit(num){
/******* by qiushuiwuhen(2002-5-15) ********/
var i,j,arrTemp=[];
for(i=0;i<num;i++)arrTemp[i]=document.all(arrSel[i]).options[document.all(arrSel[i]).selectedIndex].text
if(num==arrSel.length){//这里处理最后的数据。
document.all("result").value="选中了("+arrTemp.join(",")+")";return;
}
with(document.all(arrSel[num])){
length=0
for(i=0;i<arrData.length;i++){
for(j=0;j<num;j++)if(arrTemp[j]!=arrData[i][j])break;
if(j!=num)continue;
if(length==0||options[length-1].text!=arrData[i][num])
options[length++].text=arrData[i][num];
}
onchange=new Function("qswhInit("+(num+1)+")");
onchange();
}
}
qswhInit(0);//初始化
</script>

解决方案 »

  1.   

    <select name=sCity></select>
    <select name=sName></select>
    <select name=sAge style=display:none></select>
    <select name=sIn style=display:none></select>
    <form name="info">
    <table>
    <tr><td>姓名</td><td>年龄</td><td>城市</td><td>介绍人</td></tr>
    <tr>
    <td><input type=text name="name" value=""></td>
    <td><input type=text name="age" value=""></td>
    <td><input type=text name="city" value=""></td>
    <td><input type=text name="intr" value="">
    </tr></table></body></html><script>
    var arrSel=["sCity","sName","sAge","sIn"];//arrSel定义了要修改的下拉框
    var i=0,arrData=[];//arrData中搁的是数据,每条都显示各级的数据
    arrData[i++]=["北京","JAMES","24","盖茨"]
    arrData[i++]=["上海","ANDY","36","盖茨"]
    arrData[i++]=["天津","JACK","23","盖茨"]
    arrData[i++]=["沈阳","JANE","33","王选"]
    arrData[i++]=["武汉","MAKE","18","王选"]
    arrData[i++]=["北京","TOM","21","王选"]
    arrData[i++]=["沈阳","BELL","31","王选"]
    </script>
    <script>
    function qswhInit(num){
    /******* by qiushuiwuhen(2002-5-15) ********/
    var i,j,arrTemp=[];
    for(i=0;i<num;i++)arrTemp[i]=document.all(arrSel[i]).options[document.all(arrSel[i]).selectedIndex].text
    if(num==arrSel.length){//这里处理最后的数据。
    document.info.city.value=arrTemp[0];
    document.info.name.value=arrTemp[1]
    document.info.age.value=arrTemp[2];
    document.info.intr.value=arrTemp[3];
    return;
    }
    with(document.all(arrSel[num])){
    length=0
    for(i=0;i<arrData.length;i++){
    for(j=0;j<num;j++)if(arrTemp[j]!=arrData[i][j])break;
    if(j!=num)continue;
    if(length==0||options[length-1].text!=arrData[i][num])
    options[length++].text=arrData[i][num];
    }
    onchange=new Function("qswhInit("+(num+1)+")");
    onchange();
    }
    }
    qswhInit(0);//初始化
    </script>
      

  2.   

    枫叶无情,秋水无恨二位老师:
    感谢你们给我的帮助,
    我的示例中:下边这个表格在我还没有对<select></select>选择之前,
    <table>
    <tr><td>姓名</td><td>年龄</td><td>城市</td></tr>
    <tr>
    <td><input type=text name="name" value="<? echo $r[t_name];?>"></td>
    <td><input type=text name="age" value="<? echo $r[t_age];?>"></td>
    <td><input type=text name="in" value=""></td>
    <td><input type=text name=""
    </tr></table>表格就已经生成在页面上了,例如页面中已经显示了如下的几行:姓名           年龄           城市               入网介绍人
    JAMES          24             北京                  
    ANDY           36             上海                  
    JACK           23             天津                  
    JANE           33             沈阳                  
    MAKE           18             武汉                  
    TOM            21             北京                  
    BELL           31             沈阳                  
    问题:如何才能在我对一个<select></select>做了选择后,把入网介绍人是王选或盖茨的行,加上值???