无法通过javascript代码更改php会话变量

无法通过javascript代码更改php会话变量,javascript,php,Javascript,Php,我的php代码如下: public function checkWhetherASalaryProcessIsOngoing(){ if(isset($this->session->userdata['salary_is_on_going'])){ echo $this->session->userdata['salary_is_on_going']; }else{echo 'NOTSET';} } public func

我的php代码如下:

public function checkWhetherASalaryProcessIsOngoing(){        
    if(isset($this->session->userdata['salary_is_on_going'])){ 
    echo $this->session->userdata['salary_is_on_going'];    }else{echo 'NOTSET';}    
}

public function set_salary_is_on_going(){        
    if(!isset($this->session->userdata['salary_is_on_going'])){$isset = $this->session->set_userdata('salary_is_on_going','SET');} 
    echo $this->session->userdata['salary_is_on_going'];        
}  

public function delete_set_salary_is_on_going(){        

    $this->session->set_userdata('salary_is_on_going','NOTSET');
    echo $this->session->userdata['salary_is_on_going'];
}
我的javascript代码:

$(document).on('click','a#process',function(){ 
// set the start time
t0 = performance.now();
alert('<?php if(isset($this->session->userdata['salary_is_on_going'])){echo $this->session->userdata['salary_is_on_going'];}?>');

var payment_period_id = parseInt($('#paymentPeriodId').val());
var unit_id = parseInt($('#unitIdz').val());
var user_id = parseInt($('#userIdz').val());    

// check whether same session variables exists in all opened pages. function in D:\xampp\htdocs\diganta\assets\js\common_js.php                
checkSessionDataWithPageSessionData(function(dataii){
if(dataii === 'NOTCHANGED'){

checkWhetherASalaryProcessIsOngoing(function(dataoo){
    if(dataoo === 'NOTSET'){
    // if not set then set session variable named salary_is_on_going    

    set_salary_is_on_going(function(data55){
        if(data55 === 'SET'){

        progress(); 

        var checkedRows = [];
        $("#supervisorList tr").each(function () {

            if ($(this).find("input").is(":checked")) {
                checkedRows.push({"supervisor_id" : $(this).find("td:eq(1)").text()});
            }
        });
            if(checkedRows.length < 1){            
                delete_set_salary_is_on_going();
                custom_alert('Supervisor not selected.',"Error",10,'right',50);
                }    
            if(checkedRows.length > 0){
                ensureItIsNotARevisedSalary(checkedRows,user_id,unit_id,payment_period_id);
            }else{return;}  



        }else{custom_alert('Can not set salary ongoing session variable.',"Error",10,'right',50);return;}            
    });        

    }else{custom_alert('A salary process is ongoing.',"Error",10,'right',50);return;}
});

}else{custom_alert('session data change detected. Cannot Execute.<br><br> refresh.',"Error",10,'right',50);return;}
    });        
 });


function      ensureItIsNotARevisedSalary(checkedRows,user_id,unit_id,payment_period_id){

 var url = '<?php echo base_url();?>primary_salary_processing/ensureItIsNotARevisedSalary';
 $.post(url,{payment_period_id:payment_period_id}).done(function(data){
 data = parseInt(data);
 if(data > 0){        
            setTimeout(function(data){delete_set_salary_is_on_going();},1000);
            custom_alert('This is a revised salary it can not be processed from here.',"Error",120,'right',50);          
        }        
    else{checkWhetherSalaryIsLocked(checkedRows,user_id,unit_id,payment_period_id);}       
}); 
}

function checkWhetherASalaryProcessIsOngoing(result){

var url = '<?php echo base_url();?>primary_salary_processing/checkWhetherASalaryProcessIsOngoing';
$.ajax({
    url:url,
    data:{},  
    type:"POST",
    success:function(data){
         result(data);
     },        
});
}
 function set_salary_is_on_going(result){

var url = '<?php echo base_url();?>primary_salary_processing/set_salary_is_on_going';
$.ajax({
    url:url,
    data:{},  
    type:"POST",
    success:function(data){
         result(data);
     },        
});
}

function delete_set_salary_is_on_going(){

var url = '<?php echo base_url();?>primary_salary_processing/delete_set_salary_is_on_going';
$.ajax({
    url:url,
    data:{'url2':'<?php echo $this->session->userdata['url'];?>'},  
    type:"POST",
    success:function(data){

     },        
    });
}
$(文档)。在('click','a#process',function(){
//设置开始时间
t0=性能。现在();
警报(“”);
var payment_period_id=parseInt($('#paymentPeriodId').val();
var unit_id=parseInt($('#unitIdz').val();
var user_id=parseInt($('#userIdz').val();
//检查所有打开的页面中是否存在相同的会话变量。函数位于D:\xampp\htdocs\diganta\assets\js\common\u js.php中
checkSessionDataWithPageSessionData(函数(dataii){
如果(数据II==='NOTCHANGED'){
检查ASALARYPROCESSONGONG(函数(dataoo))是否正常{
如果(dataoo==='NOTSET'){
//如果未设置,则设置名为salary\u的会话变量正在进行中
设置工资正在进行(功能(数据55){
如果(数据55==‘设置’){
进步();
var checkedRows=[];
$(“#监管者列表tr”)。每个(功能){
如果($(this).find(“输入”)为(“:选中”)){
checkedRows.push({“supervisor\u id”:$(this.find)(“td:eq(1)”).text()});
}
});
如果(checkedRows.length<1){
删除设置工资正在进行中();
自定义警报(“未选择主管”)、“错误”、10、“正确”、50;
}    
如果(checkedRows.length>0){
确保不修改工资(支票行、用户id、单位id、付款期id);
}else{return;}
}else{custom_alert('无法设置正在进行的会话变量',“Error”,10,'right',50);return;}
});        
}else{custom_alert('薪资流程正在进行',“Error”,10,'right',50);return;}
});
}else{custom_alert('检测到会话数据更改。无法执行。

刷新',“Error”,10,'right',50);return;} }); }); 函数EncurietIsNotReviedSalary(已检查的行、用户id、单位id、付款期id){ var url='主要薪资处理/EnsureitIsNotReviedSalary'; $.post(url,{payment\u period\u id:payment\u period\u id}).done(函数(数据){ data=parseInt(数据); 如果(数据>0){ setTimeout(函数(数据){delete_set_salary_is_on_going();},1000); 自定义_警报('这是修订后的薪资,无法在此处理。',“错误”,120,'正确',50); } else{检查工资是否被扣掉(检查行程、用户id、单位id、付款期限id);} }); } 函数检查是否正在进行ASALARY处理(结果){ var url='主要工资处理/检查是否进行初步处理'; $.ajax({ url:url, 数据:{}, 类型:“POST”, 成功:功能(数据){ 结果(数据); }, }); } 函数集\u工资\u正在进行中(结果){ var url='主要工资处理/设置工资正在进行'; $.ajax({ url:url, 数据:{}, 类型:“POST”, 成功:功能(数据){ 结果(数据); }, }); } 函数delete\u set\u salary\u正在进行(){ var url='主要工资处理/删除设置工资正在进行'; $.ajax({ url:url, 数据:{'url2':''}, 类型:“POST”, 成功:功能(数据){ }, }); }
单击#流程后,薪资流程开始

问题是javascript函数delete\u set\u salary\u is\u on\u going()无法更改


索引为“salary”的会话变量将“on”变为“NOTSET”

您是否忘记在接收/处理url中写入会话开始()

<?php session_start() ?>

这应该是一条评论,而不是一个答案。您在帖子中说:要调用一些PHP代码,客户端必须向服务器发送一个新的HTTP请求。这可以使用三种可能的方法之一实现:链接,它使浏览器加载新页面。表单提交,向服务器提交数据并加载新页面。AJAX请求,这是一种Javascript技术,用于向服务器发出常规HTTP请求(如1.will和2.will),但不离开当前页面。我错了吗。