我正在研究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参数值发送到控制器方法?谢谢 前进
答案 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
注意:请查看浏览器的“网络”标签以查看输出: