我在我的一个项目中使用了复选框。我在下面给出了复选框代码:
$this->Form->checkbox('ClubOpenDay.status', array("data-on-label" => "Open", "data-off-label" => "Close", "checked" => "checked"), array("empty" => false))
此处,默认情况下,Open处于活动状态。但是在编辑模式下,如果将值设置为关闭,则将显示关闭。我无法执行此操作。我只是想,如果我从数据库中打开值,它将默认显示打开其他关闭。任何关于它的想法?
答案 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
}
您的复选框将自动选中或取消选中。