2011-12-20 4 views
6

特定のタスクが完了した後、次のコードを使用して前のページにリダイレクトしています。上記のコードは正常に動作しているが、私は直面しています問題がある前のページにリダイレクトするときに変数データを送信する方法

.... some other stuffs... I am updating database values here.... 

     $this->db->where('t_expenseid', $t_expenseid); 
     query=$this->db->update('teacherexpense', $data); 


     redirect($this->session->userdata('previous_page')); 

私は成功を送りたい

 if (isset($_SERVER['HTTP_REFERER'])) 
     { 
     $this->session->set_userdata('previous_page', $_SERVER['HTTP_REFERER']); 
     } 
     else 
     { 
     $this->session->set_userdata('previous_page', base_url()); 
     } 

私は、コントローラで使用上のコードと別のコントローラに次のコード..以前のページがロードされたときに成功メッセージがポップアップするように(私は既にjqueryを持っています)、リダイレクトのメッセージを表示します。そしてこれのために、私はリダイレクトの上に次のコードを追加しましたが、リダイレクトとともに$データまたはメッセージを送信する方法はわかりません。そして、もし私が以前のページのコントローラの値を取得する方法を送ることができれば。

$data['msg']='Information Has been Successfully Inserted'; 

送信方法を教えてください。

答えて

10

をset_flashdataページの更新メッセージが空白になった後に、そのメッセージを1回だけ使用できます。

$this->session->set_flashdata('message', 'Authentication failed'); 

    redirect(site_url('message/index/'), 'refresh'); 

そして、そのページ上のあなたはそれが働い

$message = $this->session->flashdata('message'). 
+0

により、このメッセージをキャッチすることができ、私はこれを探していたおかげで:) – Troubleshooter

+0

我々はフラッシュを介してメッセージを取得しましたが、我々は、自動生成されたメッセージを失いました"validation_errors()"によって、独自のメッセージを書くのではなく、それらをキャッチする方法はありますか? –

2

:)

おかげで、一般的には、ページにリダイレクトし、メッセージを表示させたい状況で使用されflashdataを、使用することを検討してください。メッセージは一度しか表示されません。ユーザーがページを更新すると、メッセージは消えます。ここで

は、あなたがそれを使用する方法である:

$this->db->where('t_expenseid', $t_expenseid); 
query = $this->db->update('teacherexpense', $data); 

// set flashdata 
$this->session->set_flashdata('message', 'Information Has been Successfully Inserted'); 

redirect($this->session->userdata('previous_page')); 

そして、「前のページ」に次のメッセージを確認することができ、それが存在する場合はそれを表示:あなたが使用することができます

// get flashdata 
$message = $this->session->flashdata('message'); 

if ($message) { 
    // pass message to view, etc... 
} 
関連する問題