我有一種情況,如果我的表單不驗證我需要它從網址中除去第一個參數。原因是因爲我的表單的結果顯示在內容區域的表單下方。如果表單不確認我需要刪除任何以前的結果。驗證失敗時重定向表單
我已經在我的form_validate函數中嘗試了以下內容。
// Check if there were any errors.
$errors = form_set_error();
if (!empty($errors)) {
drupal_goto(arg(0));
}
目標頁面顯然是相同的,除了第一個,除了第一個,所有的參數被剝離。問題是Drupal忘記了form_validate函數引發的以前的表單狀態和錯誤。
我也嘗試改變我的form_validate函數中的#redirect值,但無濟於事。
有什麼建議嗎?
在自定義PHP網站中,您的方法可行。但是,Drupal擁有自己的表單處理API。真的,這更像是一個Drupal問題,而不是PHP甚至表單驗證問題。 – Icode4food 2010-06-23 18:57:15
API文檔的快速掃描,它提到$ form_state ['values']數組,我猜是你所有的過濾表單值,但你是對的,它乍看起來似乎不是一種解析除了$ _ POST。爲什麼不將$ form_state存儲在會話中,然後假裝表單已被驗證,並用會話值覆蓋$ form_state – gawpertron 2010-06-23 19:09:55