您好我是角色的新手,我正在尝试提交表单并检查我的mysql数据库(如果用户在场)。我的所有代码都工作,因为当我把json直接放在我的php / codeigniter代码中时,我得到了我正在寻找的员工。我认为我的问题是将数据从我的角度转移到php。
这是我的HTML
<div class="login-content">
<form ng-controller="loginController" ng-submit="processForm()" class='margin-bottom-0' accept-charset="utf-8">
<div class="form-group m-b-20">
<input type="text" ng-model="formData.AccessKey" required="true" id="AccessKey" class="form-control input-lg" placeholder="Access Key" />
</div>
<div class="form-group m-b-20">
<input type="password" ng-model="formData.Password" required="true" id="Password" class="form-control input-lg" placeholder="Password" />
</div>
<div class="login-buttons">
<button type="submit" name="IsPostBack" value="true" class="btn btn-primary btn-block btn-lg">Login</button>
</div>
</form>
</div>
这是我的角度代码
app.controller('loginController', function($scope, $http){
$scope.processForm = function(){
$http({
method : 'GET',
url : 'http://localhost:8888/employees/login',
data : $scope.formData = {},
header : {'Content-Type': 'application/x-www-form-urlencoded'}
})
.success(function(data){
console.log(data);
})
};
});
这是我使用codeigniter框架的php im。这是控制器
public function login()
{
$this->employees_model->login();
}
这是我在php中的模型
public function login()
{
$data = $this->input->get('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';
}
}
这是我得到的错误
尝试在第173行获取非对象的属性
第173行$ AccessKey = $ data-&gt; AccessKey;
所以我不认为我正确地传递了这些值。
答案 0 :(得分:0)
添加此标题,看看会发生什么:
{"Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"}
答案 1 :(得分:0)
首先,角度代码中的下一行将始终在发送请求之前重置formData:
data : $scope.formData = {},
因此,请将其更改为
data : $scope.formData,
其次,我认为数据配置不适用于GET方法。如果可能,请尝试POST:
method : 'POST',
我不知道你正在使用什么PHP框架,但这对我来说似乎不错。至少通过简单解决上述问题,我的案例中的对话就起作用了。
当您在将来遇到类似问题时,可能首先要在服务器端记录所有请求:
Log::info($this->input->all()); // Something like this? I'm guessing.