jquery不向控制器函数提供参数

时间:2013-07-31 09:46:09

标签: jquery ajax codeigniter codeigniter-2

我的codeigniter视图文件中有以下jquery代码行,它们获取表单字段值并将它们发送到add_emp_performance控制器中的employees函数。

    var emp_id = "<?php echo $this->uri->segment(3); ?>";
    var title = $("#title").val();
    var date = $("#date").val();
    var url = "<?php echo base_url().'index.php/employees/add_emp_performance/';?>"+emp_id;
    //alert(emp_id); ---> works fine
    //alert(url);  ---> works fine
    $.ajax({
        type: "GET",
        //type: "POST",
        url: url,
        //data: 'emp_id='+emp_id+'&title='+title+'&date='+date,
        success: function(r){
            if(r==1){
                alert("Performance Saved!");
            }else{
                alert("Error!");
            }
        }
    }); 

控制器员工功能add_emp_performance:

function add_emp_performance($emp_id){
    echo $emp_id ;exit;

我一直收到以下错误:

A PHP Error was encountered

Severity: Warning

Message: Missing argument 1 for Employees::add_emp_performance()

Filename: controllers/employees.php

可能是什么问题?很多人!

2 个答案:

答案 0 :(得分:0)

问题是你错过了发布数据的ajax的数据选项

 $.ajax({
    type: "GET",
    url: url,
    data:{'emp_id':emp_id }, //<---here this is data that is posted to the server
    ....

答案 1 :(得分:-1)

问题是你没有通过你的ajax传递可变的emp_id 试试这个:你可以在ajax中传递数据

var emp_id = "<?php echo $this->uri->segment(3); ?>";
    var title = $("#title").val();
    var date = $("#date").val();
    var url = "<?php echo base_url().'index.php/employees/add_emp_performance/';?>"+emp_id;
    //alert(emp_id); ---> works fine
    //alert(url);  ---> works fine
    $.ajax({
        type: "GET",
        url: url,
        data:{'emp_id':emp_id },
        success: function(r){
            if(r==1){
                alert("Performance Saved!");
            }else{
                alert("Error!");
            }
        }
    }); 

在您的控制器中,您可以获取以此模式传递的数据:

function add_emp_performance(){
    echo $this->input->get('emp_id');exit;