对checkbox传参有点模糊,今天在一个博客里看到的就转到开源中国空间里分享给大家
一般在网页中,使用多选框可以一次性选择多个属性值,进行批量操作,比如网站有大量垃圾信息,此时一个一个删除信息会耗费过多时间,如果使用checkbox表单提交,效率很高,可以批量删除。
网页中checkbox的用法一般为:<form name="formdelpi" method="post" action="http://www.iiwnet.com">
<input name=delpi type=checkbox value=1>
<input name=delpi type=checkbox value=2>
<input name=delpi type=checkbox value=3>
<input type="submit" name="s" value="【批量删除】">
</form>
在ASP中,可以直接使用 request.form("delpi") 获取参数值,request.form("delpi")的值是以逗号 “, ”分割,比如上面如果全部勾选,那么获得的值为:1, 2, 3。我们可以使用split函数进行切割,从而对每个参数进行合适的处理。
而在PHP中,是无法直接通过$_POST["delpi"]获取像上面这样的值的,php中只能获取最后一个值,比如全部勾选,$_POST["delpi"]的值只返回3。
为了解决这个问题,我们就需要把表单 checkbox 的名称改为数组名:
<form name="formdelpi" method="post" action="">
<input name=delpi[] type=checkbox value=1>
<input name=delpi[] type=checkbox value=2>
<input name=delpi[] type=checkbox value=3>
<input type="submit" name="s" value="【批量删除】">
</form>
这样,我们就可以通过 $_POST["delpi"] 获取数组array(1,2,3)里的全部值了。再使用foreach函数,可以对数组array里的每个值进行操作:
$id=$_POST["delpi"];
foreach($id as $n){
mysql_query("delete from content where id=$n",$conn);
echo "·结果:删除ID:(".$n.") 成功!<br />";
}
更多:
PHP教程