2013-08-04 29 views
2

我的錯誤信息運行良好,但我不知道如何在會話的閃存數據中輸出成功信息NOT。在CodeIgniter中提交後顯示錶單成功

<div class="tpl-callbacks" id="tpl-callback"> 
    <?php 
     if($this->session->flashdata('message')) 
      $message = $this->session->flashdata('message'); 
     if($this->session->flashdata('error')) 
      $error = $this->session->flashdata('error'); 
     if($this->session->flashdata('success')) 
      $success = $this->session->flashdata('success'); 
     // THIS WORKS WITHOUT FLASHDATA 
     if(function_exists('validation_errors') && validation_errors() != '') 
      $error = validation_errors(); 
     // AND HOW TO DO THE SAME BUT FOR SUCCESS AND WITHOUT FLASHDATA ? 
    ?> 
    <?php if(!empty($error)):?> 
     <div class="alert alert-error"> 
      <a class="close" data-dismiss="alert">&times;</a> 
      <?php echo $error;?> 
     </div> 
    <?php endif;?> 
    <?php if(!empty($success)):?> 
     <div class="alert alert-success"> 
      <a class="close" data-dismiss="alert">&times;</a> 
      <?php echo $success;?> 
     </div> 
    <?php endif;?> 
</div> 

所以每當我做了形式檢查後提交,我可以輸出錯誤消息,並且在flashdata成功的消息,但我不知道如何表達一個成功的消息,而無需使用flashdata:

if($this->form_validation->run() == FALSE){ 
    // $this->session->set_flashdata('error', validation_errors()); // <-- THIS WORKS IN FLASHDATA 
    validation_errors(); <-- THIS WORKS BUT WITHOUT FLASHDATA, WHICH IS GOOD ALSO 
}else{ 
    // Set the callback message 
    $this->session->set_flashdata('success', 'Success!'); // <-- THIS WORKS IN FLASHDATA 
    // AND HOW I SHOULD DO THE SAME, BUT WITHOUT FLASHDATA ? 
    // SO IT WILL WORK WITH MY MAIN TEMPLATE.PHP 

} 

有人可以指出我的正確答案,或給我一個小費什麼要結帳,以實現這一目標?

謝謝

+0

爲什麼不在同一頁上發佈表單? – sbaaaang

+0

@sbaaaang - 我試過了,它的工作原理,問題只是,我不知道如何在 – aspirinemaga

+0

之前在同一頁上做到這一點ehehe沒有問題,希望你修好了;) – sbaaaang

回答

3

好吧,如果你不是重定向,那麼你可以使用一個變量,將其投入到您的視圖。所以它可能是這樣的在你的控制器:

$messages = array(); 
$messages[] = "My message"; 

$view_data['messages'] = $messages; 
$this->load->view('your view', $view_data); 

在你的看法,消息陣列將可用,你可以使用它。

但是,如果您想要重定向,則需要暫時​​將其存儲在某處,以便在請求之間保持活動狀態。 codeigniter中的會話flashdata非常適合這一點。

validation_errors();在你的控制中,不會做任何事情。既然你不迴應它。它可能起作用的事實可能是因爲你也在你的視圖中使用了該功能。

+0

太棒了!這麼簡單,我不知道我以前怎麼沒有意識到 – aspirinemaga