传递选中的复选框值数组?

时间:2011-12-22 04:32:49

标签: php html arrays loops checkbox

我在下面有一个复选框...
它在循环中:

<script>
                    function checkCheckBoxes_abel() { //check if the checkbox is checked before submitting.
                        if (document.payform.pay_checkbox.checked == false)
                            {
                                alert ('You didn\'t choose any of the checkboxes for payment !');
                                return false;
                            }
                        else
                            {
                                alert ('One or more checkboxes from payment form are checked!');
                                document.forms["payform"].submit(); 
                                return true;
                            }
                        }
                    </script>    

<form name="payform" onsubmit="return checkCheckBoxes_abel();" method="POST" action="payment.php">    
    for($record_count=0;$record_count<$record;$record_count++)
                    {
        <td><input type="checkbox" name="pay[]" id="pay_checkbox" value="<?php echo $amount_dueArr[$record_count];?>" onClick="checkTotal()"/></td>
        }
    </form>

如何传递正在选中的复选框的值?

由于

我可以这样做:

if (isset($_POST['pay']))
  { 
     foreach($_POST["eg_payamt_"] as $key => $payamt){
            echo "eg_payamt_$key => $payamt\n <br>"; 
        }
  }

on payment.php?

由于

插图: 我有三个复选框......

如果我选中其中一个复选框,

复选框勾选:数组

如果我没有检查其中任何一个

勾选复选框:

哪个是正确的,但数组的内容不仅仅是一个而是三个, 我怎么能只做一个?还是只有两个?取决于正在检查的复选框数量。

我可以在另一个领域做吗? 它似乎只适用于一个领域

if (isset($_POST['pay']))
    { 
      if(is_array($_POST['pay']))  
      {
     //foreach($_POST["pay"] as $key => $desc)
     foreach($_POST["eg_description_"] as $key => $desc)
        {
            echo "eg_description_$key => $desc\n <br>"; 
        }
      }
      else
      {
         //echo 'description :'.$_POST['pay'];
         echo 'description :'.$_POST["eg_description_"];
      }
    }

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

如果有人只选择一个会在foreach循环中发出警告的复选框,那么POST中会收到2种类型的值,这样你就可以尝试这种方式了

if (isset($_POST['pay']))
{ 
    if(is_array($_POST['pay']))  {
      //foreach($_POST["eg_payamt_"] as $key => $payamt){ 
      foreach($_POST["pay"] as $key => $payamt){
        echo "eg_payamt_$key => $payamt\n <br>"; 
      }
    }
    else  {
       echo 'pay : '. $_POST['pay'];
    }
}