You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CodeIgniter如何将listsreport获取的GET参数status传递给ajaxleadsreport

问题原因

你首次访问listsreport页面时的GET参数只会存在于那次请求里,后续ajax调用ajaxleadsreport是独立的新请求,不会自动带上之前的GET参数,所以需要手动透传,按照以下步骤修改即可:


具体修改步骤

  1. 修改listsreport控制器方法,把获取到的$status1传递给indexreport视图
public function listsreport($slug='')
{
    $status1 = $this->input->get('status');
    $content['status1'] = $status1; // 新增这行,将参数传入视图
    $main['content']=$this->load->view('crm/leads/indexreport',$content,true);
}
  1. 修改indexreport视图,把status1带入ajax请求,二选一即可:
  • 方式一:在页面的#objlistform表单内添加隐藏域,表单序列化时会自动带上参数
<input type="hidden" name="status" value="<?php echo $status1;?>">
  • 方式二:直接修改getleads方法的ajax请求参数,手动追加参数
function getleads(p){ 
    var formData = $('#objlistform').serializeArray();
    formData.push({name: 'status', value: '<?php echo $status1;?>'});
    $.ajax({
        type: "post",dataType:"json",async:false,cache:true,
        url: "<?php echo site_url('leads/ajaxleadsreport'); ?>"+( parseInt(p)>0?'/'+p:''),
        data: formData,
        success: function(e){$('#leadswrap').hide().html(e.html).fadeIn('slow');} 
    }); return false;
}
  1. 修改ajaxleadsreport控制器方法,接收传过来的status参数并传入视图
public function ajaxleadsreport($p='')
{       
    $content['status1'] = $this->input->post('status'); // 接收ajax传递的status
    $output = array( 'html'=>$this->load->view('crm/leads/ajaxleadsreport',$content, true)); 
    echo json_encode($output); 
}
  1. 修正ajaxleadsreport视图的变量错误,直接用控制器传递的参数即可
<?php  
$sess=$this->session->userdata(); 
// 删掉原来用get方式拿参数的代码,直接用控制器传过来的$status1即可
$post = array('fstatus'=> $status1,'fpriority'=> $sessn['fpriority']); // 修正原代码的变量名笔误
$postd = json_encode(array_filter($post));
?>

内容的提问来源于stack exchange,提问作者H2O

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 08:15:03