次のコードをご覧ください。
_$this->session->set_flashdata('message', 'This is a message.');
var_dump($this->session->flashdata('message'));
_
bool(false)
を返します。
しないことを願っています[〜#〜] need [〜#〜]a redirect()
は、後でリコール可能になります。ビューでflashdataを設定した直後に呼び出す必要がある場合があるためです。
Editvenkat のコメントの後
_$this->session->set_flashdata('message', 'This is a message.');
$this->session->keep_flashdata('message');
var_dump($this->session->flashdata('message'));
_
残念ながら違いはありません。
さて、 documentation は実際には
CodeIgniterは、「flashdata」、または次のサーバーリクエストでのみ使用可能なセッションデータをサポートし、その後自動的にクリアされます。
最初のこととして、これは明らかに新しいサーバー要求を行う必要があることを意味します。リダイレクト、更新、リンク、またはその他の手段は、ユーザーを次のリクエストに送信することを意味します。
とにかく同じリクエストでフラッシュデータを使用しているのに、なぜフラッシュデータを使用するのですか? flashdataを使用したり、通常のセッションを使用したりしないこともできます。
// Set flash data
$this->session->set_flashdata('message_name', 'This is my message');
// After that you need to used redirect function instead of load view such as
redirect("admin/signup");
// Get Flash data on view
$this->session->flashdata('message_name');
Flashdataを設定するには、コントローラー機能をリダイレクトする必要があります
$this->session->set_flashdata('message_name', 'This is test message');
//redirect to some function
redirect("controller/function_name");
//echo in view or controller
$this->session->flashdata('message_name');
Codeigniterでリダイレクト後にフラッシュメッセージを表示する
コントローラーでこれを設定します
<?php
public function change_password(){
if($this->input->post('submit')){
$change = $this->common_register->change_password();
if($change == true){
$messge = array('message' => 'Password chnage successfully','class' => 'alert alert-success fade in');
$this->session->set_flashdata('item', $messge);
}else{
$messge = array('message' => 'Wrong password enter','class' => 'alert alert-danger fade in');
$this->session->set_flashdata('item',$messge );
}
$this->session->keep_flashdata('item',$messge);
redirect('controllername/methodname','refresh');
}
?>
In Your View File Set this
<script type="application/javascript">
/** After windod Load */
$(window).bind("load", function() {
window.setTimeout(function() {
$(".alert").fadeTo(500, 0).slideUp(500, function(){
$(this).remove();
});
}, 4000);
});
</script>
<?php
if($this->session->flashdata('item')) {
$message = $this->session->flashdata('item');
?>
<div class="<?php echo $message['class'] ?>"><?php echo $message['message']; ?>
</div>
<?php
}
?>
以下のリンクを確認してください Codeigniterでリダイレクト後にフラッシュメッセージを表示する
Config.phpを変更します。
$config['sess_use_database'] = TRUE;
に:
$config['sess_use_database'] = FALSE;
わたしにはできる。