PHP获取多个同名复选框的值的处理(完整正确版本)

Posted royal_coffee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP获取多个同名复选框的值的处理(完整正确版本)相关的知识,希望对你有一定的参考价值。



要获取同名的多个复选项框的值的时候,而且复选框的个数是不确定的,php和ASP的处理不同.ASP的REQUEST能将获取的复选框自动形成一个数组,要处理这些数值就很容易.比起ASP,PHP就麻烦些,它并没有这些功能(至少我目前未找到).
所以,处理这个问题的时候,我们可以通过javascript预处理,在点击提交的时候把这些复选框的值附加到一个隐藏域去,然后PHP可以获取到这个隐藏域的值,通过explode()函数分解为数组,这样就可以批量获得复选框的值了.
程序代码:
<html>
<body>
<form name="form3" id="form1" action="getvalues.php" method="post">
   <input type="checkbox" name="checkbox1" value="1"><br>
   <input type="checkbox" name="checkbox1" value="2"><br>
   <input type="checkbox" name="checkbox1" value="3"><br>
   <input type="checkbox" name="checkbox1" value="4"><br>
   <input name="allcheckboxs" type="hidden" value=""><br>     <!--隐藏域,JS将会把值加在allcheckboxs-->
  <input type="submit" name="Submit3" value="提交" onClick="return allcheckbox();">  <!--提交时会激活checkbox()函数-->
</form>

<script language="javascript">
function allcheckbox()
{
   
 form3.allcheckboxs.value = "";
 if ( !form3.checkbox1.length ) // 只有一个复选框,form3.checkbox1.length = undefined
 {
  if ( form3.checkbox1.checked )
   form3.allcheckboxs.value = form3.checkbox1.value;
 }
 else
 {
  for ( i = 0 ; i < form3.checkbox1.length ; i++ )
  {
   if ( form3.checkbox1(i).checked ) // 复选框中有选中的框
   {
    form3.allcheckboxs.value = form3.checkbox1(i).value;
    for ( j = i + 1 ; j < form3.checkbox1.length ; j++ )
    {
     if ( form3.checkbox1(j).checked )
     {
      form3.allcheckboxs.value += ","; //用,做分割符
      form3.allcheckboxs.value += form3.checkbox1(j).value;
     }
    }
    break;
   }
  }
 }
 return true;
}

</script>
</body>
</html>

下面是处理程序代码:
getvalues.php

<?php
if ((isset($_POST["allcheckboxs"])) && ($_POST["allcheckboxs"] != "")) {
 $allcheckboxs_val= explode(",", $_POST["allcheckboxs"]);
  for ($i=0;$i<count($allcheckboxs_val);$i++){
     echo $allcheckboxs_val[$i]."<br>";//arhwen.com
}
}
?> 

以上是关于PHP获取多个同名复选框的值的处理(完整正确版本)的主要内容,如果未能解决你的问题,请参考以下文章

php获取checkbox复选框的多个选项的内容

如何在php中获取多个选定(动态)复选框的值?

jquery怎样获取多个复选框的值?

Html复选框单击获取自身值的问题:

如何获取combobox选中的值

如何获取combobox选中的值