【问题标题】:PHP Form checkbox arrayPHP 表单复选框数组
【发布时间】:2016-06-20 09:10:53
【问题描述】:

我有以下 HTML 表单:

<input type="checkbox" name="markpaid[]">
<input name="paymentdate[]" value="$paymenttodaydate" type="text">

当将此表单提交给 PHP 时,我会这样做:

$markpaid = $this->input->post('markpaid[]');
$paymentdate = $this->input->post('paymentdate[]');

for ($i=0;$i<count($markpaid);$i++) {
   echo $paymentdate[$i];
}

结果总是包含第一个数组。我只想获取选中相应复选框的 $paymentdate 值。

有什么建议吗?

谢谢

【问题讨论】:

  • 我不完全确定问题出在哪里,但如果这两个字段之间存在相关性,您应该将它们与 ID 链接起来,可能像这样name="markpaid[&lt;ID&gt;][]" / name="paymentdate[&lt;ID&gt;][]"
  • 你的复选框没有值部分,这个 html sn-p 是否会在某个循环中运行。

标签: php html arrays forms


【解决方案1】:
foreach($_POST['markpaid'] as $value) {
echo ($value);
}

如果 ::

也可以在 POST 中尝试 markpaid[]

【讨论】:

    【解决方案2】:

    我最终得到:

    HTML

    <input type="checkbox" name="markpaid[] value="$due->poreceivedid">
    <input name="paymentdate-$due->poreceivedid" value="$paymenttodaydate" type="text">
    

    PHP

    $markpaid = $this->input->post('markpaid[]');
    for ($i=0;$i<count($markpaid);$i++) {
       $paymentdate = $this->input->post('paymentdate-'.$markpaid[$i].'');
    }
    

    感谢@Epodax、@abhishek-gurjar、@akshayp 的提示

    【讨论】:

      【解决方案3】:

      从下面删除[]

       $markpaid = $this->input->post('markpaid[]');
       $paymentdate = $this->input->post('paymentdate[]');
      

      这将是:

       $markpaid = $this->input->post('markpaid');
       $paymentdate = $this->input->post('paymentdate');
      

      现在$markpaid$paymentdate 将为您提供带有选定复选框值的数组。

      Reference

      【讨论】:

        猜你喜欢
        • 2015-07-23
        • 2011-08-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多