在codeigniter中调用ajax jquery函数后,会话值被销毁

时间:2012-07-09 09:31:59

标签: php codeigniter jquery

当我通过ajax jQuery将一些值传递给function ResponseOnline($qid,$response)时,我无法同时存储新的会话值和旧会话值。

这是我的问题

1 即可。在会话中登录一些值存储

2 即可。然后我通过ajax jquery传递一些值来运行,然后将它存储在数组中,然后存储在会话中。

第3 即可。当我通过ajax jquery获得会话值时,我把事情做对了,

4 即可。但是当我传递第二个值然后我丢失了我的会话值     已存储在上一个传递中。

这是我的函数调用:

public function ResponseOnline($qid,$response)
  {

 $d=$qid;

 $s=$response;

if($this->session->userdata('countnew')==0)   //  algo for this function i check the                                       
                                               //countnew session varaible   if 0 do this 
{                                                
$sc=$this->session->userdata('countnew');     // store the countnew variable
echo $sc=$sc+1;                               // increment the counter variable
$this->session->set_userdata('countnew',$sc);  // store it in session 

echo $this->session->userdata('countnew');
$r2[$d]=$s;                               // store array value $r2 with key $d and 
$this->session->set_userdata('res',$r2);  //set this array value in session 
}
else{                                  // if session countnew!=0 then do this
$r2=$this->session->userdata('res');  // first store $r2 as array return from session
 $r2[$d]=$s;                         //then add value to this array                      

 $this->session->set_userdata('res',$r2); // storing this array to session
}
echo '<pre>';
print_r($r2);       // printing the array


}

1 个答案:

答案 0 :(得分:0)

public function ResponseOnline($qid,$response)
{
    if($this->session->userdata('res'))
    {
         $result = $this->session->userdata('res');
         $result[$qid] = $response;
         $this->session->set_userdata($result);
    }
    else
    {
         $result = array();
         $result[$qid] = $response;
         $this->session->set_userdata($result);
    }
}