如何使用检查CodeIgniter中的复选框?

时间:2016-01-29 19:11:27

标签: php codeigniter codeigniter-3

我有一个复选框,在CI中创建如下:

echo form_checkbox(array(
    'name' => 'active',
    'id' => 'active',
    'value' => '1'
));

我还有其他字段,例如Name,它们已经应用了必要的字段验证。因此,当我将Name留空并勾选active复选框时,它会显示名称错误。但它删除了对活动复选框的检查。我想保持活动复选框已选中。

我知道CI中的set_checkbox方法,但不知道如何在上面使用它。如果是form_input,我们只需使用set_value,一切正常。但是使用set_checkbox,它会返回完整的字符串checked="checked"。因此,当我使用set_checkboxform_checkbox组合如下时,它不起作用。

echo form_checkbox(array(
    'name' => 'active',
    'id' => 'active',
    'value' => '1',
    'checked' => set_checkbox('active', '1')
));

知道如何解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

您可以将其设置为

echo form_checkbox(array(
    'name' => 'active',
    'id' => 'active',
    'value' => '1',
    'checked' => ($this->input->post('active') && $this->input->post('active') == 1 )
));

如果你不在你的情况下使用($ this-> input-> post('active')&& ....),如果你不检查这个就会引发错误复选框并提交表单。

答案 1 :(得分:0)

form_checkbox上的checked属性接受TRUE / FALSE值。一个简单的比较,看看是否设置了值。

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

        //Assigns UIDatePickerView and UIPickerView cells
        if(indexPath.section == 0 && mainOptions[indexPath.row] == mainOptions[0]) {

            return clientNameInput as UITableViewCell

        } else if(indexPath.section == 0 && mainOptions[indexPath.row] == mainOptions[1]) {

            return invoiceEmailInput as UITableViewCell

        } else if(indexPath.section == 0 && mainOptions[indexPath.row] == mainOptions[2]) {

            return invoiceAddressInput as UITableViewCell

        } //etc....

未在此样式中使用set_checkbox方法。根据{{​​3}}

中的此示例,它打算在现有HTML中使用
echo form_checkbox(array(
    'name' => 'active',
    'id' => 'active',
    'value' => '1',
    'checked' => ( $this->input->post('active') == 1 )
));