使用动态值codeigniter填充动态复选框

时间:2013-03-20 14:22:58

标签: php codeigniter dynamic checkbox

我有一个带添加和编辑功能的表单。在表单内部,它们有复选框。复选框本身是从mysql表生成的。

当我想要添加功能时,会正确填充该复选框。但是,当我输入表格的编辑功能时,我有问题。

我需要根据提交时检查复选框值。

这是我的代码:

控制器:

public function edit($id)
{
    $data['query'] = $this->Campaign_model->edit($id);
    $data['branch_list'] = $this->Campaign_model->get_branch_list();
    $data['branch_checked'] = $this->Campaign_model->get_checked_branches($id);

    $this->load->view('campaign_form', $data);
}

$data['branch_list']包含主要复选框。 $data['branch_checked']包含在当前数据(查询)中检查的复选框。

查看:

$branch_id = "";

foreach($branch_list as $branch_list_checkbox)
{
    if($branch_list_checkbox->id == $branch_checked->branch_id)
    {
        $branch_id .= '<label><input name="branch_id[]" type="checkbox" value="'.$branch_list_checkbox->id.'" checked />'.$branch_list_checkbox->name.'</label>&nbsp;';
    }
    else
    {
        $branch_id .= '<label><input name="branch_id[]" type="checkbox" value="'.$branch_list_checkbox->id.'" />'.$branch_list_checkbox->name.'</label>&nbsp;';
    }           
}

$branch_list中的所有内容都已正确填充。但是,如何将$branch_checked正确分配到各自的复选框?

需要帮助,谢谢。

2 个答案:

答案 0 :(得分:0)

看起来你正确地做到了。也许不只是把“检查”你需要放

$branch_id .= '<label><input name="branch_id[]" type="checkbox" value="'.$branch_list_checkbox->id.'" checked="checked" />'.$branch_list_checkbox->name.'</label>&nbsp;';

答案 1 :(得分:0)

实际上只有checked没问题。当我运行上面的代码时,它会产生错误:

A PHP Error was encountered

Severity: Notice

Message: Trying to get property of non-object

Filename: views/campaign_form.php

Line Number: 104

第104行是:

if($branch_list_checkbox->id == $branch_checked->branch_id)

错误有两盒。

$branch_list$branch_checked产生的输出是数组,所以我想我应该foreach$branch_checked,但我不知道怎么写它。

我在谷歌上搜索foreach($a as $b => $c),但我不明白它是如何工作的;但是我试图在代码上放置可能使用的任何变量,它会产生错误。