try
<script language="javascript">
var temparray=new Array();
function mycheckbox()

  temparray.length = 0;
  var inputs = document.all.tags("INPUT");
  for (var i=0; i< inputs.length; i++)
  {
if (inputs[i].type=="checkbox" && inputs[i].checked)
{
var j=temparray.length++;
temparray[j] = inputs[i].name;
}
  }
  //alert(temparray.length);
  return temparray;
}
</script>
<input type=checkbox name=checkbox1 onclick="mycheckbox();">
<input type=checkbox name=checkbox2 onclick="mycheckbox();">
<input type=checkbox name=checkbox3 onclick="mycheckbox();">
<input type=checkbox name=checkbox4 onclick="mycheckbox();">

解决方案 »

  1.   

    <script language="javascript">
    var temparray=new Array();
    function mycheckbox(myobject)

        checkslen=form1.checkbox.length;
        temparray=new Array();
        k=0;
    for (i=0;i<checkslen;i++) if(form1.checkbox[i].checked) temparray[k++]=form1.checkbox[i].value;
        alert(temparray.join(",")+"\n\nArray Length="+temparray.length);//这是测试
    }
    </script><form name=form1>
    <input type=checkbox name=checkbox value=1 onclick="return mycheckbox(this);">
    <input type=checkbox name=checkbox value=2 onclick="return mycheckbox(this);">
    <input type=checkbox name=checkbox value=3 onclick="return mycheckbox(this);">
    <input type=checkbox name=checkbox value=4 onclick="return mycheckbox(this);">
    </form>
      

  2.   

    <script language="javascript">
    var temparray=new Array();
    function mycheckbox(){
    temparray=new Array();//去掉原始值
    var n=document.all("checkbox").length; //checkbox的长度
    var j=0;//temparray的下标
    for (i=0;i<n;i++){
    if(document.all("checkbox")[i].checked==true){
    temparray[j++]=i+1;
    }
    }

    //下面代码用于显示结果是否正确
    var toshow="";
    for(i=0;i<temparray.length;i++){
    toshow+="temparray["+i+"]="+temparray[i]+";\r";
    }
    alert("temparray的长度是"+temparray.length+"\r"+toshow);
    }
    </script>
    <input type=checkbox name=checkbox onclick="return mycheckbox();">
    <input type=checkbox name=checkbox onclick="return mycheckbox();">
    <input type=checkbox name=checkbox onclick="return mycheckbox();">
    <input type=checkbox name=checkbox onclick="return mycheckbox();">
      

  3.   

    说明:
        上述代码如须增加行数,只需增加一行
    <input type=checkbox name=checkbox onclick="return mycheckbox();">
    所有input的name都是checkbox,根据他们的索引确定顺序
      

  4.   

    这些checkbox其实是举例,他真正是从数据库提出来的,即数据库中有多少条记录就有多少个checkbox。我现在能够判断了checkbox的值,但是在进行提交的时候找不到对象:当在php中打印javascript数组的时候说没有定义,然而我已经在程序开始就定义了temparray.见下面!!!!!
    请问怎样才能将temparray中的值加入到数据库中去!
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <style type="text/css">
    <!--
    td {  font-size: 9pt}
    body{font-size:9pt}
    -->
    </style>
    <script language="javascript">
    var aa=""
    var bb="";
    var temparray=new Array();
    function checknull()
    {if (document.myform.username.value=="")
        {alert ("用户名不能为空");
        document.myform.username.focus;
        return false;}
     if (document.myform.mypas1.value=="")
        {alert ("用户密码不能为空");
         document.myform.mypas1.focus;
         return false;}
     if(document.myform.mypas2.value=="")
        {alert("请确认用户密码");
         document.myform.mypas2.focus;
         return false;
         }
     if (myform.mypas1.value!=myform.mypas2.value)
        {alert("两次密码不一致");
         document.myform.mypas1.value=="";
         document.myform.mypas2.value=="";
         document.myform.mypas1.focus;
         return false;
        }    alert(myform.hid.value);
         return true;
    }
    function mycheckbox(myobject)
    { var myobject;  
      var temp=new Array();
      var mystate=false;
      if (myobject.checked)
        { aa=aa+myobject.name;
          bb="adfadfadf";
    //     alert(aa);
    // temparray[temparray.length]=this.name
     for(i=0;i<=temparray.length;i++)
       { if (temparray[i]==myobject.name)
        {
            mystate=true;
            break; 
        }     
        }
       if (mystate==false)
       { temparray[temparray.length]=myobject.name;}alert("length="+temparray.length+"value= "+temparray);
       // aa[aa.length+1]=myobject.name;
      //  alert(myobject.name+"="+myobject.value);
        }
     // else
     //  { for(i=0;i<a.length;i++)
     //     { if (aa[i]==myobject.name)
     //       {aa[i]="";}
     //     }
     //  }
      else
      {  for(i=0;i<=temparray.length;i++)
            { 
                 if (temparray[i]!=myobject.name)
                  temp[i]=temparray[i];
                
               //if (temparray[i]==myobject.name)
               //{   temparray[i-1]=temparray[i]
              // }
             }
             for(i=0;i<temparray.length;i++)
              {temparray[i]=null;}        
             for(i=0;i<=temp.length;i++)
              { temparray[i]=temp[i];}
           
         alert("length="+temparray.length+"value="+temparray);
         <?echo temparray;?>
        }
     return aa;
    }
    </script></head>
    <body bgcolor="#FFFFFF">
    <?$host="localhost";
     $user="sale";
     $pass="htsale";
     $database="net_sale";
     mysql_connect("$host","$user","$pass");
     mysql_select_db("$database");
     
     if ($username&&$mypas1&&$mypas2)
     {  
         $sqls="select * from admin";
         $result=mysql_query($sqls);     
         $state=true;
        while($temp=mysql_fetch_array($result))
        { if ($temp["username"]==$username)
         {  echo "该用户名已经存在";
            $state=false;
            break;
         }
        }
        if ($state==true)
         { $mysqls="select count(*) as areacount from area";
           $bbb=mysql_query($mysqls);
           $mybb=mysql_fetch_array($bbb);
        //   echo $mybb["areacount"];
           $ccc=mysql_query("select * from area order by id");
           while($myresult=mysql_fetch_array($ccc))
             { $id=$myresult["id"];
              ?>
               <script language="javascript">
                
    问题在这里:   说没有定义!!!    alert(temparray);
                     </script>
             <?}
          $sqls="insert into admin(username,psd,marea)values('$username','$mypas1','$marea')";
         // $aaa=mysql_query($sqls);
         }
        
     }
         ?>
    <form name="myform" action="/htsale/admin/addnewuser.php" method="post" onsubmit="return checknull();">
    <table width="35%" border="0" cellspacing="1.5" cellpadding="1" bordercolor="#FF0066" height="117" bgcolor="#333333">
      <tr> 
        <td width="37%" bgcolor="#aaaadd"><font color="#FFFFFF"><b>用户名</b></font></td>
        <td width="63%" bgcolor="#aaaadd"> 
          <input type=text name="username">
        </td>
      </tr>
      <tr> 
        <td width="37%" bgcolor="#aaaadd"><font color="#FFFFFF"><b>密码</b></font></td>
        <td width="63%" bgcolor="#aaaadd"> 
          <input type=password name=mypas1>
        </td>
      </tr>
      <tr> 
        <td width="37%" bgcolor="#aaaadd"><b><font color="#FFFFFF">确认密码</font></b></td>
        <td width="63%" bgcolor="#9999CC"> 
          <input type="password" name="mypas2">
          <input type="hidden" name="hid" value="fdfdfd">
        </td>
      </tr>
      
    <tr>
    <?
     $sqls="select * from area order by id";
     $result=mysql_query($sqls);
     echo "请选择管理的范围";
     echo "<table><tr>";
     $i=0;
     while($temp=mysql_fetch_array($result)) {   $i=$i+1;
         $myid=$temp["id"];
         $addressname=$temp["addressname"];
    ?>
         
    <td><?echo $addressname;?></td>
    <td><input type=checkbox value=100 name=<?echo $myid?> onclick="return mycheckbox(this);">
    <input type="hidden" name="hid" value="101010"> </td>
    <?
         if($i==4)
         {$i=0;
          echo "</tr><tr>";}
     }
     echo "</table>"?>
     </tr>
          <tr> 
          <td width="37%" height="39" bgcolor="#aaaadd"><input type="hidden" name="hid" value="101010"></td>
          <td width="63%" height="39" bgcolor="#9999CC"> 
          <input type=submit name="mysubmit" value="提交">
          <input type=reset name=myreset value="重填">
          </td>
          </tr>
    </table>
    </form>
    </body>
    </html>
      

  5.   

    感谢你无为,你真是上帝。
    请问怎样才能将这个数组中的值用mysql_query传入到表中去。
    麻烦你看一下上面这一段代码!谢谢!!!!!!
      

  6.   

    temparray虽然已定义,但在调用mycheckbox()后才赋值,直接读值为空(不是未定义)。onclick之后,可看到temparray是有值的
      

  7.   

    当我点击checkbox之后就调用了mycheckbox,这时temparray就已经有值,但是在进行提交的时候(直接读出temparray的值)却是没有定义,不知道怎样解决。
    就如无为的这一段程序,我想给数据库赋值;不知道怎样实现!请帮忙,谢谢!<?if ($submit)  {$host="localhost";   $user="sale";   $pass="htsale";   $database="net_sale";   mysql_connect("$host","$user","$pass");   mysql_select_db("$database");   ....... ....... tablename:aaa;字段id,saa; 请问怎样才能把javascript中的数组temparray的值插入到表中。 ............ ?>     <script language="javascript"> var temparray=new Array(); function mycheckbox() {    temparray.length = 0;   var inputs = document.all.tags("INPUT");   for (var i=0; i< inputs.length; i++)   {     if (inputs<i>.type=="checkbox" && inputs<i>.checked)     {         var j=temparray.length++;         temparray[j] = inputs<i>.name;     }   }   //alert(temparray.length);   return temparray; } </script> <FORM action=index.php method=post> <input type=checkbox name=checkbox1 onclick="mycheckbox();"> <input type=checkbox name=checkbox2 onclick="mycheckbox();"> <input type=checkbox name=checkbox3 onclick="mycheckbox();"> <input type=checkbox name=checkbox4 onclick="mycheckbox();"> <input type=submit name=mysub > </FORM> 
      

  8.   

    大概明白你的意思了,可试试下面这个,当没有勾选任何一个checkbox时,temparray长度为0,读它元素的值自然为undefined,那么应该在服务端将接收的参数进行判断,如果长度为0则不添加值,否则将值依次加入数据库
    <script language="javascript"> 
    var temparray=new Array(); 
    function mycheckbox() {    
       var inputs = document.all.tags("INPUT");
       temparray.length = 0;
       for ( i=0; i< inputs.length; i++)
       {     if (inputs[i].type=="checkbox" && inputs[i].checked)
         {         var j=temparray.length++; 
            temparray[j] = inputs[i].name;
         }
       }  
       return temparray;

    function mysubmit()
    {
    alert("len:"+temparray.length);
    alert("first value:"+temparray[0]);
    /*if(temparray.length==0)
    {temparray.length++;
    temparray[0]=0;}
    //也可如此设置一个0标志
    */
    for(i=0;i<temparray.length;i++)
    alert(temparray[i]);
    form1.submit();
    }
    </script>
    <FORM name=form1 action=index.php method=post> <input type=checkbox name=checkbox1 onclick="mycheckbox();"> <input type=checkbox name=checkbox2 onclick="mycheckbox();"> <input type=checkbox name=checkbox3 onclick="mycheckbox();"> <input type=checkbox name=checkbox4 onclick="mycheckbox();"> <input type=button name=mysub onclick=mysubmit()> </FORM>