Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在ajax帖子中传递对象_Php_Angularjs_Codeigniter - Fatal编程技术网

Php 如何在ajax帖子中传递对象

Php 如何在ajax帖子中传递对象,php,angularjs,codeigniter,Php,Angularjs,Codeigniter,我几乎已经为一件听起来很简单的事情争论了一天。我正在尝试使用AngularPostAjax传递对象。我将PHP与codeigniter框架一起使用,没有任何值通过。我用angular发送对象的方式肯定有问题,因为php没有得到任何东西。它将到达正确的位置,因为我得到一个响应错误,说“尝试获取非对象的属性,第173行”第173行是$AccessKey=$data->AccessKey 这是我的角度代码 app.controller('loginController', function($scop

我几乎已经为一件听起来很简单的事情争论了一天。我正在尝试使用AngularPostAjax传递对象。我将PHP与codeigniter框架一起使用,没有任何值通过。我用angular发送对象的方式肯定有问题,因为php没有得到任何东西。它将到达正确的位置,因为我得到一个响应错误,说“尝试获取非对象的属性,第173行”第173行是$AccessKey=$data->AccessKey

这是我的角度代码

app.controller('loginController', function($scope, $http){

//$scope.formData = {};

$scope.processForm = function(){
    $http({
        method  : 'POST',
        url     : 'http://localhost:8888/employees/login',
        data    : '{"AccessKey":"candoa01@gmail.com","Password":"candoa21"}'
    })
        .success(function(data){
            console.log(data);
        })
};



});
这是我的php。我想这里可能没有使用正确的对象名来检索值

public function login()
{
    $data = $this->input->post('data');

    //$data = '{"AccessKey":"candoa01@gmail.com","Password":"candoa21"}';
    $data =  json_decode($data);

    $AccessKey = $data->AccessKey;
    $Password = $data->Password;

    $sql = "SELECT *
            FROM Employees
            WHERE Employees.AccessKey = ?
            AND Employees.Password = ?";

    $query = $this->db->query($sql, array($AccessKey, $Password));

    if($query->num_rows() > 0)
    {
        $query = json_encode($query->result());
        return $this->output
            ->set_content_type('application/json')
            ->set_output($query);
    }
    else
    {
        return 'Invalid AccessKey Or Password';
    }
}

}

尝试此操作,使用
params
而不是数据&在params中删除
'

 $http({
        url: 'http://localhost:8888/employees/login', 
        method: "POST",
        params: {"AccessKey":"candoa01@gmail.com","Password":"candoa21"}
     })

尝试此操作,使用
params
而不是数据&在params中删除
'

 $http({
        url: 'http://localhost:8888/employees/login', 
        method: "POST",
        params: {"AccessKey":"candoa01@gmail.com","Password":"candoa21"}
     })

根据服务器端代码,您必须传递如下所示的数据

$scope.processForm = function(){
    $http({
        method  : 'POST',
        url     : 'http://localhost:8888/employees/login',
        data    : { 
          data: JSON.stringify({  
             AccessKey: "candoa01@gmail.com",
             Password:"candoa21"
           })
        }
    })
    .success(function(data){
       console.log(data);
    })
};

根据服务器端代码,您必须传递如下所示的数据

$scope.processForm = function(){
    $http({
        method  : 'POST',
        url     : 'http://localhost:8888/employees/login',
        data    : { 
          data: JSON.stringify({  
             AccessKey: "candoa01@gmail.com",
             Password:"candoa21"
           })
        }
    })
    .success(function(data){
       console.log(data);
    })
};

您接收数据的方式错误,因为您没有发布json格式的数据。这应该是

$AccessKey = $this->input->post('AccessKey');
$Password = $this->input->post('Password ');
或者你可以用这种方式

$data = $this->input->post();
$AccessKey = $data['AccessKey'];
$Password = $data['Password'];

您接收数据的方式错误,因为您没有发布json格式的数据。这应该是

$AccessKey = $this->input->post('AccessKey');
$Password = $this->input->post('Password ');
或者你可以用这种方式

$data = $this->input->post();
$AccessKey = $data['AccessKey'];
$Password = $data['Password'];

您正在发送字符串atm,如果要发送对象,请将其更改为:
data:{user:{“AccessKey”:candoa01@gmail.com“,“password”:“candoa21”}
您应该能够使用
$this->input->post('user')检索php脚本中的数据data:data:{“AccessKey”:candoa01@gmail.com“,“Password”:“candoa21”}
为什么使用json编码来获取数据?这应该是
$AccessKey=$This->input->post('AccessKey')和$Password=$this->input->post('Password');您正在发送字符串atm,如果要发送对象,请将其更改为:
data:{user:{“AccessKey”:candoa01@gmail.com“,“password”:“candoa21”}
您应该能够使用
$this->input->post('user')检索php脚本中的数据data:data:{“AccessKey”:candoa01@gmail.com“,“Password”:“candoa21”}
为什么使用json编码来获取数据?这应该是
$AccessKey=$This->input->post('AccessKey')和$Password=$this->input->post('Password');非常感谢你的工作。对于将来可能遇到此问题的人。我将ajax类型从post更改为get,并使用服务器端语言进行了相同的更改。我还添加了$this input->get('AccessKey'),并对password执行了相同的操作,因为我不再检查对象,而是检查查询字符串。非常感谢ramamoorthy!u Villithan,非常感谢你的工作。对于将来可能遇到此问题的人。我将ajax类型从post更改为get,并使用服务器端语言进行了相同的更改。我还添加了$this input->get('AccessKey'),并对password执行了相同的操作,因为我不再检查对象,而是检查查询字符串。非常感谢ramamoorthy_villiYes如果你想发布数据json格式,你可以使用这种方式。是的,如果你想发布数据json格式,你可以使用这种方式。