2013-08-31 135 views
0

我正在嘗試瞭解如何向用戶顯示一條消息,通知他們從他們嘗試從數據庫中刪除內容頁面時出現錯誤或成功消息。我想知道如果我「在做正確爲止。如果我是什麼什麼,我的看法嗎?在Codeigniter中顯示來自flashdata的成功/失敗消息

控制器

/** 
* Content_pages::delete_content_page() 
* 
* Deletes a content page from the list of content pages. 
* 
* @param string $content_page_id The id of the content page being deleted. 
* @return void 
*/ 
public function delete_content_page($content_page_id) 
{ 
    $status = 'unprocessed'; 
    $title = 'Action Unprocessed'; 
    $message = 'The last action was rendered unprocessed. Please try again.'; 
    if (isset($content_page_id) && is_numeric($content_page_id)) 
    { 
     $content_page_data = $this->content_page->get($content_page_id); 
     if (!empty($content_page_data)) 
     { 
      $this->content_page->update($content_page_id, array('status_id' => 3)); 
      if ($this->db->affected_rows() > 0) 
      { 
       $status = 'success'; 
       $message = 'The content page has been successfully deleted.'; 
       $title = 'Content Page Deleted'; 
      } 
      else 
      { 
       $status = 'error'; 
       $message = 'The content page was not deleted successfully.'; 
       $title = 'Content Page Not Deleted'; 
      } 
     } 
    } 
    $output = array('status' => $status, 'message' => $message, 'title' => $title); 
    $this->session->set_flashdata('output', $output); 
    redirect('content-pages/list'); 
} 

/** 
* Content_pages::list_content_pages() 
* 
* List all of the content pages found in the database. 
* 
* @return void 
*/ 
public function list_content_pages() 
{ 
    $content_pages = $this->content_page->get_all(); 

    $data['output'] = $this->session->flashdata('output'); 

    $this->template 
     ->title('Content Pages') 
     ->set('content_pages', $content_pages) 
     ->build('content_pages_view', $data);  
} 

我的問題是在視圖,因爲它顯示爲默認爲空消息,所以我試圖找出如何不顯示它時,認爲首先呈現,只有當存在要顯示的消息。

if (isset($output)) 
{ 
    if ($output['status'] == 'success') 
    { 
     echo '<div class="alert alert-success">'; 
    } 
    elseif ($output['status'] == 'error') 
    { 
     echo '<div class="alert alert-error">'; 
    } 
    else 
    { 
     echo '<div class="alert alert-error">'; 
    } 

    echo '<button type="button" class="close" data-dismiss="alert">&times;</button>'; 
    echo '<strong>' . $output['title'] . '</strong>' . $output['message']; 
    echo '</div>'; 
} 
?> 
+0

在視圖中,您只需執行'echo $ output'。 – rgin

回答

0

我已經設置了默認的會話閃存數據值,當第一次加載的時候,在這種情況下,如果沒有設置數據,它會返回什麼樣的值。所以我需要添加一個條件來檢查值是否爲假。

1

我不知道您的自定義模板類不具有->title()->set()->build()什麼。但它看起來像你仍然通過$data進入你的視圖。

因此,您只需在您的視圖中執行echo $output;

編輯:

我認爲對於$output仍然顯示的原因是因爲這些代碼並不是if語句裏面:

echo '<button type="button" class="close" data-dismiss="alert">&times;</button>'; 
echo '<strong>' . $output['title'] . '</strong>' . $output['message']; 
echo '</div>'; 

嘗試移動他們的if語句裏面的地方只有在設置了$output時纔會打印出來。

+0

謝謝,不過我想指出我的視圖代碼。我只顯示了if語句來檢查要顯示的消息,但它總是顯示在視圖渲染中,這不應該發生。我應該在if語句中添加什麼作爲支票。 – user2576961

+0

檢查我編輯的答案。 – rgin

+0

如果您發現它們在if語句中。 – user2576961

相關問題