我想有一个表单,我有一个额外的复选框(不会存储输入到db),它将在控制器中读出。
例如。 在“作业编辑”视图中,我可以选择一个用户。在此用户下是一个复选框。在我为用户分配了一封电子邮件后,此复选框将发送。
在我的控制器中我写
$post_array = $this->request->data;
if ($post_array['Job']['mailcheck'] == NULL) {
// DO SOMETHING
} else {
// DO SOMETHING
}
但它没有读出复选框值......
任何想法如何解决这个问题?
寻求帮助
答案 0 :(得分:1)
虽然马克答案是正确的,但请允许我详细说明。
请记住,复选框有时会表现得很奇怪。未经检查的复选框可能根本不会发布,这可能就是您的情况失败的原因。
关于你无法使其发挥作用的原因:
在任何一种情况下,您似乎都在执行重定向,这就是您永远不会看到编辑表单的原因。检查你是否遗漏了某些东西或试试这个:
if ($this->request->is('post')) {
if (!empty($this->request->data['Job']['mailcheck'])) {
$this->redirect(array('action' => 'sendMails',$id));
} else {
$this->redirect(array('action' => 'sorted'));
}
}
答案 1 :(得分:0)
这就足够了:
if (!empty($this->request->data['Job']['mailcheck'])) {
// yes, checkbox was selected
} else {
// no, it was not selected
}