如何在php

时间:2018-03-07 00:33:30

标签: php codeigniter checkbox foreach

我有一个如下的复选框,

<tr>
  <td>
     <input type="checkbox" checked="checked" name="feegroupid[]" class="fee_checkbox" value="<?php echo $fee_value->fee_groups_feetype_id ?>">
  </td>

   <td> 
      <input type="text" name="actual_pay[]" class="form-control modal_amount actual_pay" id="amount" value="<?php echo $feetype_balance; ?>">
   </td>
   </tr>

如果选中复选框行,我的PHP函数

  foreach($_POST['feegroupid'] as $index => $selected) {

     echo $index; 

     $actualPayment = $_POST['actual_pay'][$index];      

    }

我有两行复选框, 如果我选择第二行(其索引为1),echo $index仅显示第一行索引0。 但两者都被选中(ie.checked),它分别显示两个索引为0,1 ..但是当我们取消选中一个复选框(比如说第一行索引0未选中)时,它显示{仅{1}}已检查索引为0

我需要根据选中的框索引获取名为1的另一个输入框的值。

如何在更改复选框时获取相应的复选框索引而不是第一行索引?

附加图片有一个按钮点击付费,应该发送复选框索引(即选中第二个框并且其索引为actual_pay[])。

enter image description here

1 个答案:

答案 0 :(得分:1)

这样的事情应该有效:

<tr>
    <td>
        <input type="checkbox" checked="checked" name="feegroupid[]" class="fee_checkbox" value="<?php echo $fee_value->fee_groups_feetype_id; ?>">
    </td>
    <td> 
        <input type="text" name="ap_<?php echo $fee_value->fee_groups_feetype_id; ?>" class="form-control modal_amount actual_pay" id="amount" value="<?php echo $feetype_balance; ?>">
    </td>
</tr>

PHP:

if (isset($_POST['feegroupid'])) {
    foreach ($_POST['feegroupid'] as $k => $v) {
        if (isset($_POST['ap_' . $v])) {
            echo $_POST['ap_' . $v]; //$actualPayment
        } else {
            echo 'Not found for item: ap_' . $v;
        }
    }
}