【问题标题】:Passing selected checkbox value array?传递选定的复选框值数组?
【发布时间】:2012-01-25 20:00:18
【问题描述】:

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

<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>"; 
        }
  }

在 payment.php 上?

谢谢

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

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

复选框勾选:数组

如果我没有检查它们中的任何一个

勾选了复选框:

哪个是正确的,但是Array的内容不是只有一个而是三个, 我怎样才能让它只有一个?还是只有两个?取决于检查了多少个复选框。

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

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_"];
      }
    }

【问题讨论】:

标签: php html arrays loops checkbox


【解决方案1】:

在 POST 中将收到 2 种类型的值,如果有人只选择一个复选框,则会在 foreach 循环中引发警告,因此您可以尝试这种方式

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'];
    }
}

【讨论】:

  • 我没有勾选任何复选框,但是当我点击提交时,它仍然显示payment.php中的所有pay_amt
  • @Rick Ant 我已经编辑了我的答案,你能告诉我,你从哪里发布 'eg_payamt_' 值,并且可以显示与在 payment.php 中显示复选框相关的所有代码
  • echo 'AU$ '.$amount_dueArr[$record_count].'
  • payment.php $pay = $_POST['pay'];用于显示正在检查的付款 if (isset($_POST['pay'])) { if(is_array($_POST['pay'])) { foreach($_POST["eg_payamt_"] as $key => $payamt) { echo "eg_payamt_$key => $payamt\n
    "; } } 其他 { 回声“支付:”。 $_POST['支付']; } }
  • 是的,你可以这样做。您可以使用它仍然具有 POST 值
【解决方案2】:
猜你喜欢
  • 2015-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-06
  • 1970-01-01
  • 1970-01-01
  • 2016-03-04
相关资源
最近更新 更多