2013-03-02 55 views
0

//查看代碼如何檢查多提交按鈕條件蛋糕PHP

echo $form->Create('Survey'); 

echo $form->submit('prev.arrow.png', array('name' => 'task', 'value' => 'next', 'div' => false)); 

echo $form->submit('next.arrow.png', array('name' => 'task', 'value' => 'prev', 'div' => false)); 

echo $form->end(); 

//控制器代碼

if(isset($this->params['form']['task'])) { 

    if($this->params['form']['task'] == 'prev') { 

     $this->Redirect($prev_page); 

     exit(); 

    } else if ($this->params['form']['task'] == 'next') { 

     $this->Redirect($next_page); exit(); 

    } 

} 

//這是行不通的! 而且我還有超過7個提交按鈕。和一個最終按鈕,用於處理數據庫中的SAVE邏輯記錄。 如果還有其他邏輯,那麼也建議?

+0

您可能在HTML表單中出現「名稱衝突」...嘗試將提交的名稱重命名爲它們的值,並以這種方式檢查它們......另外,在執行此操作之前,請執行:'die('

' . print_r($this->params, true) . '
');'並檢查服務器的輸出。 – 2013-03-02 10:07:27

+0

在CakePhp 2中,您應該調試'request'對象,使用:debug($ this-> request);返回;'在動作開始時(在Controller中),這樣至少可以看到表單發送的內容。一定要在'app/Config/core.php'中設置debug爲1或2,否則調試信息將不可見 – thaJeztah 2013-03-02 11:13:22

+0

另外,想知道你是否應該在這裏使用按鈕導航,特別是因爲你不會處理表單-data,如果點擊'下一步'按鈕。國際海事組織,如果它的功能是「保存並轉到下一頁」,那將是好事,但如果它只是導航,常規的

然後在你的控制器:

public function prev(){ 
    .... //whatever 
} 

public function next(){ 
    ... //whatever 
} 

或者,你也可以創建2種形式與兩個不同的提交動作,每一個按鈕。但它會是一樣的。