一个关于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
有一个很简单的方法来解决:将复选框的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
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28