Please take a look at the following code:
$this->session->set_flashdata('message', 'This is a message.');
var_dump($this->session->flashdata('message'));
It returns bool(false)
.
I hope it doesn't NEED a redirect()
to be recallable after that, because some times I need to call it right after setting the flashdata in a view.
Edit after venkat's comment
$this->session->set_flashdata('message', 'This is a message.');
$this->session->keep_flashdata('message');
var_dump($this->session->flashdata('message'));
No difference unfortunately.
This question is related to
codeigniter
session
flash message after redirect will available in controller not in view. to show in view get in controller's action and pass it view
Displaying a flash message after redirect in Codeigniter
In Your Controller set this
<?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
}
?>
Please check below link for Displaying a flash message after redirect in Codeigniter
// 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');
Change your config.php:
$config['sess_use_database'] = TRUE;
To:
$config['sess_use_database'] = FALSE;
It works for me.
To set flashdata you need to redirect controller function
$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');
Source: Stackoverflow.com