Ajax函数调用:将参数传递给Codeigniter中的控制器函数

时间:2018-07-20 15:13:36

标签: php codeigniter parameters codeigniter-3

我正在研究Codeigniter。我在视图页面中调用ajax函数。阿贾克斯     函数正在调用控制器方法。 Ajax函数包含3     我想传递给控制器​​方法的参数,但是由于某种原因我         无法访问来自ajax函数的参数。

下面是我的查看代码:

<script>  
$('#drp').change(function(e){  
      var costcenter = $('#costcenter_id :selected').val(); 
      var location1 = $('#location_id :selected').val(); 
      var department = $('#department_id :selected').val(); 
      $.ajax({
         cashe: false,
         type: 'POST',
         data:  {'costcenterid':costcenter,'locationid':location1,
                 'departmentid':department},
         url: 'http://local.desk.in/mycontroller/contollerfunction',
success: function(data)
            {
               alert("success");
            }
      });
    });
 </script>
// controller method
public function controllerfunction($costcenterid,$locationid,$departmentid)
    {
    echo "costcenter= ". $costcenterid; 
    echo "location= ". $locationid; 
    echo "department= ". $departmentid;
    }
  

获取错误消息:

     

消息:assetcontroller :: controllerfunction()缺少参数1,      消息:资产控制器:: controllerfunction()缺少参数2,      消息:资产控制器:: controllerfunction()缺少参数3

为什么无法将ajax参数值发送到控制器方法?谢谢     前进

1 个答案:

答案 0 :(得分:1)

希望这对您有帮助:

您将数据作为ajax中的发布传递,因此您必须使用$_POST或使用CI输入类(例如$this->input->post() )访问数据,而对于URL路径则使用{{ 1}}

您的site_url()代码应如下所示:

ajax

您的控制器$('#drp').change(function(e){ var costcenter = $('#costcenter_id :selected').val(); var location1 = $('#location_id :selected').val(); var department = $('#department_id :selected').val(); $.ajax({ cache: false, type: 'POST', data: {'costcenterid':costcenter,'locationid':location1, 'departmentid':department}, url: "<?=site_url('mycontroller/contollerfunction');?>", success: function(data) { alert("success"); } }); }); 方法应如下所示:

controllerfunction

注意:请查看浏览器的“网络”标签以查看输出: