如何在PHP中检索未使用POST检查的复选框?

时间:2016-06-17 03:34:41

标签: javascript php jquery checkbox

我有一个动态表格。并且有一个复选框列。我的问题是我想要得到未选中的复选框。

我希望使用数组得到这样的最终结果。

selected = array(
   '1' => 1,
   '2' => 0, //not checked
   '3' => 1,
   '4' => 1
)

数组索引对应复选框所属的行。像这样:

<tr>
    <td><input type="checkbox" name="t_liquadated[]" value="1" />
</tr>
<tr>
    <td><input type="checkbox" name="t_liquadated[]" value="1" />
</tr>
<tr>
    <td><input type="checkbox" name="t_liquadated[]" value="1" />
</tr>
<tr>
    <td><input type="checkbox" name="t_liquadated[]" value="1" />
</tr>

这是我的真实代码

$('#add-invoice-list').on('click', function(){

    set_count++;

    var row_html  = '<tr id="inv-' + set_count + '">';
        row_html += '   <td></td>';
        row_html += '   <td><input type="text" name="t_soa_amount[]" class="text-right" /></td>';

        row_html += '   <td><select name="t_soa_prepared_by[]" class="officer_dropdown form-control"></select></td>';
        row_html += '   <td><input type="text" name="t_soa_date_prepared[]" class="text-center datepicker corner_border" readonly="readonly" /></td>';
        row_html += '   <td><input type="text" name="t_invoice_amount[]" class="text-right" /></td>';

        row_html += '   <td><select name="t_invoice_prepared_by[]" class="officer_dropdown form-control"></select></td>';
        row_html += '   <td><input type="text" name="t_invoice_date_prepared[]" class="text-center datepicker corner_border" readonly="readonly" /></td>';
        row_html += '   <td class="text-center"><input type="checkbox" name="t_liquadated[]" value="1" /></td>';
        row_html += '   <td class="text-center"><button type="button" class="btn btn-danger btn-sm add_inv" onClick="removeInvoiceRow(' + set_count + ')"><span class="fa fa-trash-o"></span></button></td>';
        row_html += '</tr>';

    if(initial == 1) {
        $('#inv-1').after(row_html);
        initial++;
    } else {
        $('#inv-' + initial).after(row_html);
        initial++;
    }

    var c = $('.officer_dropdown').length;
    $('.officer_dropdown').html("<?php echo $options_officer; ?>");

});

我正在使用POST

传递此信息
$invoice_list = array(
                't_soa_amount'              =>  $this->input->post('t_soa_amount'),
                't_soa_prepared_by'         =>  $this->input->post('t_soa_prepared_by'),
                't_soa_date_prepared'       =>  $this->input->post('t_soa_date_prepared'),
                't_invoice_amount'          =>  $this->input->post('t_invoice_amount'),
                't_invoice_prepared_by'     =>  $this->input->post('t_invoice_prepared_by'),
                't_invoice_date_prepared'   =>  $this->input->post('t_invoice_date_prepared'),
                't_liquadated'              =>  $this->input->post('t_liquadated'),         
            );

            fd($invoice_list);

我希望你能帮助我。感谢。

1 个答案:

答案 0 :(得分:0)

没有本地帖子方法。你可以像这样使用

<?php
$arr = array();
for($i = 1; $i<=count($this->input->post('t_liquadated')); $i++) {
   $arr[$i] = in_array($i, $this->input->post('t_liquadated')) ? 1 : 0;
}
?>

这里$ arr将同时选中和选中复选框。无论你想要什么,用$ arr