Codeigniter如何在控制器中接收ajax发布数据

时间:2016-09-13 02:26:13

标签: php jquery ajax codeigniter

我正在尝试使用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"];
}

现在我可以通过数组索引获取帐户和密码,但是如何将接收的数据转换为Object,这样我就可以获得如下属性:$data->account

THX!

3 个答案:

答案 0 :(得分:7)

更改你的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');
}

我希望这对你有用......

答案 1 :(得分:3)

在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');
}

我认为这是有效的:)

答案 2 :(得分:1)

主页是控制器名称, 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'),
        );
            }