在Codeigniter中重新加载页面后,正在加载会话

时间:2019-08-07 04:00:56

标签: javascript php jquery codeigniter

我有一个积分表,其中有电子邮件和积分栏,我想在有人使用发送到控制器的ajax单击按钮时增加积分,我正在那里加载会话并检查该会话是否存在每5秒增加点数,仅在重新加载页面后才能运行

这是我的按钮点击代码,来自首页front.php

$(document).off('click','#earn_points').on('click','#earn_points',function(){

    var increment_var = 'plus1';
    $.ajax({
        url:'<?php echo base_url("front_controller/points_session") ?>',
        type:"POST",
        data:{increment_var:increment_var},
        dataType:"json",
        success:function(data)
        {
          console.log(data);
        }

    });
});

这是Front_controller的points_session函数

function points_session()
{
    $increment_var = $this->input->post('increment_var');
    if($increment_var=='plus1')
    {
        $this->session->set_userdata('increment',$increment_var);
    }
    echo json_encode($this->session->userdata('increment'));
}

然后,我还要检查此增量会话是否存在,然后在front.php页面上每3秒增加点数

if($this->session->has_userdata('increment') &&  $this->session->has_userdata('email'))
{ 
    var ins =1;
    setInterval(function(){   
        $.ajax({
        url : "<?php echo base_url('front_controller/increase_points') ?>",
        type:'POST',
        data:{ins:ins},
        dataType:"json",
        success:function(data)
        {
            console.log(data);
            if(data.result==true)
            {
                alert(1 points has been added to your account);
            }
        }

    }); }, 3000);
}

这是front_controller中的gain_points函数

 function increase_points()
 {
    $ins = $this->input->post('ins');
    if($ins==1)
    {
        $email =$this->session->userdata('email');

        $query_update = $this->db->set('points','points+1',FALSE)
        ->where('email',$email)
        ->update('users');
        if($query_update)
        {
            $res = array('result'=>true);
        }
        else
        {
            $res = array('result'=>false);
        }
        echo json_encode($res);
    }
}

我不想在重新加载页面时增加点数,但一切正常,但是在重新加载页面之后。我不想重新加载页面。我想增加点数而不重新加载页面

0 个答案:

没有答案