2013-04-22 52 views
0

我想要一个表单,其中有一个额外的复选框(不会存储对db的输入),它将在控制器中读出。将复选框写入CakePHP会话

例如。 在作业编辑视图中,我可以选择一个用户。在这个用户下是一个复选框。此复选框将在我将作业分配给用户之后发送。

在我的控制器我写

$post_array = $this->request->data; 
if ($post_array['Job']['mailcheck'] == NULL) { 
    // DO SOMETHING 
} else { 
    // DO SOMETHING 
} 

但doesn't读出该复选框值...

任何想法如何解决这个问题?

THX的帮助

回答

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')); 
    } 
} 
0

这足以:

if (!empty($this->request->data['Job']['mailcheck'])) { 
    // yes, checkbox was selected 
} else { 
    // no, it was not selected 
} 
+0

嗨,马克, 当我使用你的例子没有错误显示。 但是,当我点击我的详细视图上“分配用户”它不会显示编辑窗体,我可以分配给用户。我的代码 if(!empty($ this-> request-> data ['Job'] ['mailcheck'])){this-> redirect(array('action'=>'sendMails', $ ID)); } else { $ this-> redirect(array('action'=>'sorted')); } 我将直接重定向到“排序”视图。 我做错了什么? – 2013-04-22 15:42:18

+0

也许你弄错了?如果你想要的结果应该是相反的 – mark 2013-04-22 15:46:24

+0

我试试它切换两个陈述。我没有得到我的“assignUser”编辑视图。当我删除完整的if语句时,我得到了我的编辑视图 – 2013-04-22 16:01:32