2013-04-22 60 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