将复选框写入CakePHP会话
我想有一个表格,我有一个额外的复选框(将不会存储输入到数据库),这将在控制器读出 比如说。 在作业编辑视图中,我可以选择一个用户。此用户下有一个复选框。此复选框将在我将作业分配给用户后发送电子邮件 在我的控制器里我写将复选框写入CakePHP会话,cakephp,if-statement,checkbox,controller,Cakephp,If Statement,Checkbox,Controller,我想有一个表格,我有一个额外的复选框(将不会存储输入到数据库),这将在控制器读出 比如说。 在作业编辑视图中,我可以选择一个用户。此用户下有一个复选框。此复选框将在我将作业分配给用户后发送电子邮件 在我的控制器里我写 $post_array = $this->request->data; if ($post_array['Job']['mailcheck'] == NULL) { // DO SOMETHING } else { // DO SOMETHING }
$post_array = $this->request->data;
if ($post_array['Job']['mailcheck'] == NULL) {
// DO SOMETHING
} else {
// DO SOMETHING
}
但它不会读取复选框值
有没有办法解决这个问题
Thx的帮助这就足够了:
if (!empty($this->request->data['Job']['mailcheck'])) {
// yes, checkbox was selected
} else {
// no, it was not selected
}
虽然马克的回答是正确的,但请允许我详细说明 请记住,复选框有时表现得很奇怪。未选中的复选框可能根本不会发布,这可能就是您的条件失败的原因 关于为什么你不能让它工作: 在这两种情况下,您似乎都在执行重定向,这就是您从未看到编辑表单的原因。检查您是否遗漏了某些内容,或者尝试以下方法:
if ($this->request->is('post')) {
if (!empty($this->request->data['Job']['mailcheck'])) {
$this->redirect(array('action' => 'sendMails',$id));
} else {
$this->redirect(array('action' => 'sorted'));
}
}
嗨,马克,当我使用你的例子时,不会显示任何错误。但是,当我在详细信息视图中单击“分配用户”时,它不会显示我可以分配用户的编辑表单。我的代码如果(!empty($this->request->data['Job']['mailcheck']){$this->redirect(数组($action'=>'sendMails',$id));}否则{$this->redirect(数组($action'=>'sorted'));}我将直接重定向到“sorted”视图。我做错了什么?也许你搞错了?如果你想要的结果应该是相反的,请切换这两个语句。我尝试一下。我不获取我的“assignUser”编辑视图。当我删除完整的if语句时,我得到了编辑视图,问题可能出在你的
//做点什么
部分?尝试调试发布的数据,如果使用多个复选框,“mailcheck”可能是一个数组,而不是单个值。要调试,只需执行debug($this->request->data)在app/Config/core.php