Cakephp如何设置复选框值?

时间:2014-03-12 06:56:24

标签: cakephp-2.0

我在我的一个项目中使用了复选框。我在下面给出了复选框代码:

$this->Form->checkbox('ClubOpenDay.status', array("data-on-label" => "Open", "data-off-label" => "Close", "checked" => "checked"), array("empty" => false))

此处,默认情况下,Open处于活动状态。但是在编辑模式下,如果将值设置为关闭,则将显示关闭。我无法执行此操作。我只是想,如果我从数据库中打开值,它将默认显示打开其他关闭。任何关于它的想法?

3 个答案:

答案 0 :(得分:0)

那么你应该按照你的说法从数据库中获取值,并且在视图中只有if语句,应该看起来像这样:

if($value == true){
    $this->Form->checkbox('ClubOpenDay.status', array("data-on-label" => "Open", "data-off-label" => "Close", "checked" => "checked"), array("empty" => false))
}
else{
    $this->Form->checkbox('ClubOpenDay.status', array("data-on-label" => "Open", "data-off-label" => "Close"), array("empty" => false))
}

$ value应该是一个变量,你从你的控制器那里得到的值是真的,如果它是open或false,如果它是关闭的,或者可能不是真或假,1或0你会只需要更改如果你的观点中的陈述相应

我希望有所帮助,祝你好运

答案 1 :(得分:0)

您可以保存if else时间

$checked = ($status == true) ? 'checked' : '';

$this->Form->checkbox('ClubOpenDay.status', array("data-on-label" => "Open", "data-off-   label" => "Close", "checked" => $checked), array("empty" => false))

答案 2 :(得分:0)

在你的控制器中你必须写这个

public function edit($id){ // for example
    //[...]
    $this->request->data['ClubOpenDay']['status'] = $db_value;
    //$this->request->data['ClubOpenDay']['status'] = 1; // if you want to force a checkbox checked
}

您的复选框将自动选中或取消选中。