+ -
当前位置:首页 → 问答吧 → 一个关于checkbox框的全选全不选 删除方式

一个关于checkbox框的全选全不选 删除方式

时间:2010-08-15

来源:互联网

如果一个表单中有多个同名复选框,在提交到php时却只有一个值。
有一个很简单的方法来解决:将复选框的name后面加上[ ],例如:<input type="checkbox" name="aa" value="1">
改为:<input type="checkbox" name="aa[]" value="1">。这样php将得到一个叫aa的阵列。
但这种方法有个问题,如果您要在客户端对复选框是否被选择、选择了几个用javascript来判断时,javascript会因为复选框的name中含有[ ]而出错。您可以在表单中加入一个隐含域,用javascript设置它的值。
下面我就将我的方法和大家分享一下
<script>
//全选全不选操作
function checkAll(boolValue)
{
  ck=document.getElementsByName("choice");
  for(i=0;i<ck.length;i++){
      if(ck.type=="checkbox"){
          ck.checked=boolValue;
      }
  }
}
//将所有被选中的ar_id组成以,分隔的字符串
function check()
{
var strchoice="";
for(var i=0;i<document.form1.choice.length;i++)
{
if (document.form1.choice.checked)
{
strchoice=strchoice+document.form1.choice.value+",";
}
}
if (!document.form1.choice.length)
{
if (document.form1.choice.checked)
{
strchoice=document.form1.choice.value;+","
}
}

strchoice=strchoice.substring(0,strchoice.length-1);

document.form1.choiceid.value=strchoice;    //给隐藏域赋值

alert(document.form1.choiceid.value);
//因为js获取的值不好传到php页面 ,所以我在js中用GET方式将值传出
location.href="article.php?act=deleteall&choiceid="+document.form1.choiceid.value;    //将所获得的id值传出
}
</script>
<form name="form1" method="post" action="">
<input type="checkbox" name="che" value="0" onclick="checkAll(this.checked)">编号</td>
{section loop=$ar_id name="list"}
<input type="checkbox" name="choice" value="{$rw
    .ar_id}"> {$rw
      .ar_id}
      {/section}
      <input type="hidden" name="choiceid" value=""><!-- 用于接收前面被选中的ar_id编号组成的字符串 -->
      <a href="#" onclick="check()">删除选中项</a>
      </form>
      //---------------------------article.php?act=deleteall&choiceid="....."--------------------//
      if($_GET['act']=='deleteall'){
          //将获得的id字符串分割成数组
          $id=explode(",",$_GET['choiceid']);
          foreach($id as $k=>$v){
              $conn->deleteData('art',"ar_id='$v'");
          }
          //返回到列表页面
          echo "<script>location.href='?act=list'</script>";

      }
      以上只是我的方法,如果大家有更好的方式 欢迎拍砖

作者: 铁杆光棍   发布时间: 2010-08-15

  

作者: pgy251   发布时间: 2010-08-15