Javascript 从PHP(mysql)向AngularJS传递数据时没有数据
我对AngularJS和php有问题。不幸的是,我的桌子(见下文)是空的。 但是当我尝试在我的(第一个)angularJS站点加载数据时,我没有得到任何数据。这是我的密码:Javascript 从PHP(mysql)向AngularJS传递数据时没有数据,javascript,php,mysql,angularjs,Javascript,Php,Mysql,Angularjs,我对AngularJS和php有问题。不幸的是,我的桌子(见下文)是空的。 但是当我尝试在我的(第一个)angularJS站点加载数据时,我没有得到任何数据。这是我的密码: <!DOCTYPE html> <html ng-app="employeesApp"> <head> .... </head> <body ng-controller="employ
<!DOCTYPE html>
<html ng-app="employeesApp">
<head>
....
</head>
<body ng-controller="employeesCtrl">
...
<h2>employees</h2>
<table class="table table-striped table-condensed" >
<th></th>
<th>emp_no</th>
<th>birth_date</th>
<th>first_name</th>
<th>last_name</th>
<th>gender</th>
<th>hire_date</th>
<tr ng-repeat="row in employees">
<td><i class="fa fa-pencil-square-o" aria-hidden="true"></i> <i class="fa fa-trash" aria-hidden="true"></i></td>
<td>{{ row.emp_no}}</td>
<td>{{ row.birth_date}}</td>
<td>{{ row.first_name}}</td>
<td>{{ row.last_name}}</td>
<td>{{ row.gender}}</td>
<td>{{ row.hire_date}}</td>
</tr>
</table>
...
<!-- JS -->
<script type="text/javascript" src="../js/angular.min.js"></script>
<script type="text/javascript" src="../js/angular-sanitize.min.js">
</script>
...
<script>
angular.module("employeesApp", [])
.controller('employeesCtrl', function ($scope, $http) {
$scope.employees = [];
$scope.tempEmployeesData = {};
$scope.getEmployeesRecords = function(){
$http.get('employees.php?get_simple_list_employees', {
params:{
'limit':'1000'
}
}).success(function(response){
$scope.employees = response.records;
});
};
});
</script>
</body>
</html>
结果是
[{"emp_no":"10001","birth_date":"1953-09-02","first_name":"Georgi","last_name":"Facello","gender":"M","hire_date":"1986-06-26"},
{"emp_no":"10002","birth_date":"1964-06-02","first_name":"Bezalel","last_name":"Simmel","gender":"F","hire_date":"1985-11-21"}]
无论如何,这里有一些php代码(如果您需要更多,现在就告诉我)
该函数如下所示:
public function get_complex_list_employees($parameter = array()){
$sql = "SELECT ";
$sql .= array_key_exists("select",$parameter)?$parameter['select']:'*';
$sql .= " FROM employees";
$sql .= array_key_exists("where",$parameter)?" WHERE ".$parameter['where']:'';
$sql .= array_key_exists("order_by",$parameter)?" ORDER BY ".$parameter['order_by']:'';
$sql .= array_key_exists("limit",$parameter)?" LIMIT ".$parameter['limit']:'';
$query = $this->db->query($sql);
return !empty($query)?$this->getResultArray($query):false;
}
还有“电话”
我的AngularJS脚本看起来像
http://.../employees.php?cmd=get_simple_list_employees¶m=a%3A1%3A{s%3A5%3A"limit"%3Bs%3A1%3A"2"%3B}
<script>
var app = angular.module("employeesApp", [])
app.controller('employeesCtrl', function ($scope, $http) {
$scope.employees = [];
$scope.tempEmployeesData = {};
$http.get('<?php echo $_SERVER['PHP_SELF'] ?>', {
params:{
cmd: 'get_complex_list_employees',
param: [{limit: 10, select: "*", where: "first_name like \"a%\""}]
},
**paramSerializer: '$httpParamSerializerJQLike'**
}).then(function(response){
//console.log(response.data);
//console.log(response.status);
$scope.employees = response.data;
});
});
</script>
var app=angular.module(“employeesApp”,[])
app.controller('employeesCtrl',函数($scope,$http){
$scope.employees=[];
$scope.tempEmployeesData={};
$http.get(“”{
参数:{
cmd:“获取复杂的员工列表”,
参数:[{limit:10,选择:“*”,其中:“名字像\“a%\”}]
},
**paramSerializer:“$httpParamSerializerJQLike”**
}).然后(功能(响应){
//console.log(response.data);
//console.log(响应状态);
$scope.employees=response.data;
});
});
重要的一步是
paramSerializer:“$httpParamSerializerJQLike”
我在这里找到了解决办法
您的http请求中没有名为
cmd
的参数,您可能需要
$scope.getEmployeesRecords = function(){
$http.get('employees.php', {
params:{
'cmd':'get_simple_list_employees',
'limit':'1000'
}
}).then(function(response){
$scope.employees = response.data.records;
});
};
仅供参考,
success()
。使用.then(函数(响应){$scope.employees=response.data.records;})
instead@phil-谢谢你的建议-我将更改代码(和我的帖子)@rob maybe limit param被忽略,因为你的url中已经有一个参数列表。尝试将参数放在url或param对象中,但不要放在bothI中编辑问题-最后有一个工作版本-感谢您的帮助-主要技巧是“paramSerializer:“$httpParamSerializerJQLike”
<script>
var app = angular.module("employeesApp", [])
app.controller('employeesCtrl', function ($scope, $http) {
$scope.employees = [];
$scope.tempEmployeesData = {};
$http.get('employees.php?cmd=get_simple_list_employees', {
params:{
'limit':'10'
}
}).success(function(response){
console.log(response);
console.log(response.status);
$scope.employees = response;
});
});
</script>
<script>
var app = angular.module("employeesApp", [])
app.controller('employeesCtrl', function ($scope, $http) {
$scope.employees = [];
$scope.tempEmployeesData = {};
$http.get('employees.php?cmd=get_simple_list_employees', {
params:{
'limit':'10'
}
}).**then**(function(response){
console.log(response.data);
console.log(response.status);
**$scope.employees = response.data;**
});
});
</script>
$command="";
$parameter="";
if (!empty($_GET["paramURL"]) && !empty($_GET["paramJS"])) {
echo "error: dont use both parameters at the same time !! you must use paramJS OR paramURL ";
exit; }
if (!empty($_GET) && !empty($_GET["cmd"])) {
$command=$_GET["cmd"];
if (!empty($_GET["paramURL"])){
$parameter=$_GET["paramURL"];
$parameter = stripslashes($parameter);
$parameter = unserialize($parameter);
}
if(!empty($_GET["paramJS"])){
$parameter=$_GET["paramJS"];
$parameter=$parameter[0];
}
}
public function get_complex_list_employees($parameter = array()){
$sql = "SELECT ";
$sql .= array_key_exists("select",$parameter)?$parameter['select']:'*';
$sql .= " FROM employees";
$sql .= array_key_exists("where",$parameter)?" WHERE ".$parameter['where']:'';
$sql .= array_key_exists("order_by",$parameter)?" ORDER BY ".$parameter['order_by']:'';
$sql .= array_key_exists("limit",$parameter)?" LIMIT ".$parameter['limit']:'';
$query = $this->db->query($sql);
return !empty($query)?$this->getResultArray($query):false;
}
$RH = new RequestHandler();
if ( $command != "") {
if ( $parameter != "") {
$result = $RH->$command($parameter);
}
else {
$result = $RH->$command();
}
echo $result;
exit;
<script>
var app = angular.module("employeesApp", [])
app.controller('employeesCtrl', function ($scope, $http) {
$scope.employees = [];
$scope.tempEmployeesData = {};
$http.get('<?php echo $_SERVER['PHP_SELF'] ?>', {
params:{
cmd: 'get_complex_list_employees',
param: [{limit: 10, select: "*", where: "first_name like \"a%\""}]
},
**paramSerializer: '$httpParamSerializerJQLike'**
}).then(function(response){
//console.log(response.data);
//console.log(response.status);
$scope.employees = response.data;
});
});
</script>
$scope.getEmployeesRecords = function(){
$http.get('employees.php', {
params:{
'cmd':'get_simple_list_employees',
'limit':'1000'
}
}).then(function(response){
$scope.employees = response.data.records;
});
};