【问题标题】:How does Codeigniter receive the ajax post data in controllerCodeigniter 如何在控制器中接收 ajax post 数据
【发布时间】: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

标签: php jquery ajax codeigniter


【解决方案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'),
              );
                  }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-17
        • 2016-02-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多