CodeIgniter Forums
Ajax session - Printable Version

+- CodeIgniter Forums (https://forum.codeigniter.com)
+-- Forum: Archived Discussions (https://forum.codeigniter.com/forumdisplay.php?fid=20)
+--- Forum: Archived Development & Programming (https://forum.codeigniter.com/forumdisplay.php?fid=23)
+--- Thread: Ajax session (/showthread.php?tid=57478)



Ajax session - El Forum - 03-18-2013

[eluser]hot_sauce[/eluser]
Hi, i need to create or update a session after an ajax call... but it doesn' work! the session is not created or updated!
How cai i do?
Code:
//view

var dati = "email_to_verify="+$('input[name="email"]').val();
$.ajax({
url: '<?=base_url()?>sendVerify/email',
dataType: 'json',
type: 'POST',
data: dati,
success: function(data)
{
  if (data.response) console.log('CODE: <?=$this->session->userdata("vemail_code")?>'); // TEST - return : "code: ";
}
});

//Controller

public function sendVerify($tipo="")
{
$this->load->model('my_model');

switch ($tipo)
{
  case "email":
   $this->session->unset_userdata("vemail_code");
   $rW = randomWord(8,"alfanumU");
   $this->session->set_userdata("vemail_code",$rW);
  // echo '[removed]console.log("Code cc: '.$this->session->userdata("vemail_code").'")[removed]'; // return the     session changed on firebug console! but on view the session not change!
    
   sendEmail($this->input->post("email_to_verify",true));
   $res['response']= true;
   break;
  case "cell":
   $res['response']= true;
   break;
  default:
   $res['response']= false;
   break;
}
return json_encode($res);

}



Ajax session - El Forum - 03-18-2013

[eluser]davidMC1982[/eluser]
In your config autoload the session library.

In your controller called by AJAX, do something like:

Code:
$this->session->set_userdata('name_for_your_data', $data);

Unless you do the above, Codeigniter only updates the cookie every 5 mins. See here:

http://ellislab.com/codeigniter/user-guide/libraries/sessions.html