2011-10-28 51 views
7

我有一個頁面,其中包含一個表單,當任何用戶提交時,數據將發送到控制器,控制器檢查驗證,如果有任何錯誤,它會將用戶重定向到上一頁(包含表單的頁面),否則它將數據發送到模型。如何通過重定向()傳遞驗證錯誤數據?

從控制器重定向到前一頁(如果有任何驗證錯誤),我有以下的代碼

 redirect($this->input->post('redirect')); 

上面的代碼工作正常,但問題是它的用戶重定向到後上一頁(包含表單的頁面)不顯示驗證錯誤。

那麼你會請告訴我如何通過上面發佈的這個「重定向」代碼來驗證錯誤信息,並在該頁面上顯示驗證錯誤消息?

由於提前:)

解決方案:

在我的控制器:

$redirect=$this->input->post('redirect'); // << for this I have- <input name="redirect" type="hidden" value="<?= $this->uri->uri_string() ?>" />   in my view file 

    $this->session->set_flashdata('errors', validation_errors()); 
    redirect($this->input->post('redirect')); 

以我視圖文件:

<?php 

    if ($this->session->flashdata('errors')){ //change! 
    echo "<div class='error'>"; 
    echo $this->session->flashdata('errors'); 
    echo "</div>"; 
    } 

    ?> 

因此我可以通過通過驗證錯誤數據從控制器重定向到前一頁

+1

看看http://stackoverflow.com/questions/2000621/codeigniter-how-to-redirect-properly-with-form-validation –

回答

12

您可以從CI的會話庫中嘗試flashdata。它使數據可用於下一個服務器請求。

$this->session->set_flashdata('errors', validation_errors()); 

redirect($this->input->post('redirect')); 
+0

你請請告訴我在哪裏正是我應該把這個 - $ this-> session-> set_flashdata('errors',validation_errors());在此先感謝:) –

+0

非常感謝。我找到了解決方案。:) –

+0

在調用重定向之前,我將調用置於set_flashdata()。然後在它重定向到的頁面上可用。 – michaeljdennis

相關問題