我有一个积分表,其中有电子邮件和积分栏,我想在有人使用发送到控制器的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);
}
}
我不想在重新加载页面时增加点数,但一切正常,但是在重新加载页面之后。我不想重新加载页面。我想增加点数而不重新加载页面