Codeigniter 如何在控制器中接收 ajax post 数据
Posted
技术标签:
【中文标题】Codeigniter 如何在控制器中接收 ajax post 数据【英文标题】:How does Codeigniter receive the ajax post data in controller 【发布时间】:2017-01-20 13:03:10 【问题描述】:我正在尝试使用 CodeIgniter 开发我的项目的前端客户端。
但是带有 CI 的 ajax 让我很困惑。
这是我的 ajax:
$.ajax(
url : "welcome/login"
type : "POST",
dataType : "json",
data : "account" : account, "passwd" : passwd,
success : function(data)
// do something
,
error : function(data)
// do something
);
还有控制器:
public function login()
$data = $this->input->post();
// now I can get account and passwd by array index
$account = $data["account"];
$passwd = $data["passwd"];
现在我可以通过数组索引获取帐户和密码,但是如何将接收到的数据转换为对象,以便我可以得到如下属性:$data->account
谢谢!
【问题讨论】:
尝试使用url : "<?php echo base_url('welcome/login');?>"
并确保您已在config.php 中设置了base_url
【参考方案1】:
改变你的 ajax 这个:
$.ajax(
url : "<?php echo base_url(); ?>welcome/login"
type : "POST",
dataType : "json",
data : "account" : account, "passwd" : passwd,
success : function(data)
// do something
,
error : function(data)
// do something
);
改变你的控制器:
public function login()
//$data = $this->input->post();
// now I can get account and passwd by array index
$account = $this->input->post('account');
$passwd = $this->input->post('passwd');
我希望这对你有用...
【讨论】:
【参考方案2】:在 ajax 请求中请使用 base_url('welcome/login'),像这样
$.ajax(
url : "<?php echo base_url('welcome/login'); ?>"
type : "POST",
dataType : "json",
data : "account" : account, "passwd" : passwd,
success : function(data)
// do something
,
error : function(data)
// do something
);
在控制器中这样使用
public function login()
$account = $this->input->post('account');
$passwd = $this->input->post('passwd');
我认为这是工作:)
【讨论】:
【参考方案3】:Home 是控制器名称,login_data_submit 是函数名称
$.ajax(
data:'userName':userName,'loginpassword':loginpassword,
url:'<?php echo base_url(); ?>index.php/Home/login_data_submit',
type:'post',
success:function(data)
alert(data);
);
控制器类
public function login_data_submit()
$data=array(
'username'=>$this->input->post('userName'),
'loginpassword'=>$this->input->post('loginpassword'),
);
【讨论】:
以上是关于Codeigniter 如何在控制器中接收 ajax post 数据的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 jQuery+Codeigniter 获取值并显示在输入字段中?
Codeigniter + Angular Js:如何接收 JSON 数据