遇到一个很棘手的问题....  搞不定有丢饭碗的可能..... 大家本着同为学计算机的兄弟,多帮忙.... 分不多,真要是解决了请您吃饭都没问题我要用php获取几个同名的下拉表单数据,php中的同名的表单名必须用数组如:name[]但是又要用javascript来做判断控制display, 当选择上一级下拉列表时,下面出现相应的第二级下拉列表。但是javascript中的获取同名数组时是自动取的,也就是只要 name 就可以了,不用后面的[]。而且会自动取成name(0) name(1) ..... 我设想javascript 用name[](i)的形式来处理。但是好像不行....javascript的函数为:function editban(){

        for (var j = 0; j <= 2; j++)
{
document.article.'ban[]'(i).style.display="none" ;
}

if (document.article.newspaper.value == '01) document.article.'ban[]'(0).style.display="" ;
if (document.article.newspaper.value == '02) document.article.'ban[]'(1).style.display="" ;
if (document.article.newspaper.value == '03) document.article.'ban[]'(2).style.display="" ;
}php页的相关代码<form name="article" method="post" encType="multipart/form-data" action="edit.php" onsubmit="return checkedit()">
<select name="newspaper" size="1"  onchange="return editban()">
<option   value= "" >  </option> 
<option   value= "01">   01   </option> 
<option   value= "02">   02   </option> 
<option   value= "03">   03   </option> 
</select> <select name="ban[]" size="1" style="display:none" >
<option   value= "">  </option> 
<option   value= "01第一条"  >   01第一版   </option> 
<option   value= "01第二条"  >   01第二条   </option> 
<option   value= "01第三条"  >   01第三条   </option> 
</select>
<select name="ban[]" size="1" style="display:none">
<option   value= "">  </option> 
<option   value= "02第一条"  >   02第一版   </option> 
<option   value= "02第二条"  >   02第二条   </option> 
<option   value= "02第三条"  >   02第三条   </option> 
</select>
<select name="ban[]" size="1" style="display:none">
<option   value= "">  </option> 
<option   value= "03第一条"  >   03第一版   </option> 
<option   value= "03第二条"  >   03第二条   </option> 
<option   value= "03第三条"  >   03第三条   </option> 
 </select><input class="bginput" accessKey="y" type="submit" value=" 提交 ">
</form>还有个检查是否已选择的小函数也有此问题var sum=0 ;
for (var j = 0; j <= 6; j++)
{ if(document.article.ban[](j).value == '')
      {
sum=sum+j ;
       if (sum>=21)
      {
alert('请选择刊发到的版次.');
       return false;
       break;
       }
       }
}
有没有好的办法,javascript这边直接把ban[i]拿来用好像不行啊......急呀........

解决方案 »

  1.   

    可以给同名表单一个同名的id,在javascript中通过id来获取来获取表单数组的值进行处理!
      

  2.   

    噢,如果实现,写个样子可以吗?php我还会点,但是javascript比较烂
      

  3.   

    先给你的表单增加id:
    <select  id="selectban" name="ban[]"   size="1"   style="display:none"   > 
    <option       value=   "">     </option>   
    <option       value=   "01第一条"     >       01第一版       </option>   
    <option       value=   "01第二条"     >       01第二条       </option>   
    <option       value=   "01第三条"     >       01第三条       </option>   
    </select> 
    <select  id="selectban" name="ban[]"   size="1"   style="display:none"> 
    <option       value=   "">     </option>   
    <option       value=   "02第一条"     >       02第一版       </option>   
    <option       value=   "02第二条"     >       02第二条       </option>   
    <option       value=   "02第三条"     >       02第三条       </option>   
    </select> 
    <select  id="selectban" name="ban[]"   size="1"   style="display:none"> 
    <option       value=   "">     </option>   
    <option       value=   "03第一条"     >       03第一版       </option>   
    <option       value=   "03第二条"     >       03第二条       </option>   
    <option       value=   "03第三条"     >       03第三条       </option>   
    </select> 然后在javascript中通过document.getElementsByName就可以输出值:for(i=0;i<document.getElementsByName("selectban").length;i++){
        alert(document.getElementsByName("selectban")[i].value);
    }
      

  4.   

    你为什么要这样取名呢!很奇特哦。
    还有就是id在一个页面中最好是 唯一的。比较符合标准。对于名称相同的。可以用 楼上说的 
    getElementsByName()获取 。
      

  5.   

    document.getElementsByName可以通过表单name或id取得表单对象
    document.getElementsByName("selectban")[i].style.display=''表单就显示
      

  6.   

    3楼的应该吧name设成selectban吧 getElementsByName 获取对象的数组  循环即可var obj=document.getElementsByName("selectban");
    for(i=0;i<obj.length;i++)
    {
        alert(obj[i].value);
    }
      

  7.   

    搞定了,多谢大家.另外说一下,表单显示,我写成document.article.selectban(i).style.display="" ; 也可以,效果一样好像在javascript里()和[]都可以表示数组吧.....还有,谁知道哪有比较完整的javascript的语法书?最好是chm的,方便用的时候查谢谢