Javascript 错误:使用AngularJS、AJAX对表行分页时未定义ValList
我正在使用这段代码的一部分对AngularJS进行分页,但我想使用MySQL DB表中名为“user”的数据。。。 但是我面临一个错误,valLists是未定义的,因此它返回null,并且不显示任何内容。。。。我认为数据类型来自select.php导致了这种情况,我不知道如何解决它。。任何帮助 HTML代码:Javascript 错误:使用AngularJS、AJAX对表行分页时未定义ValList,javascript,php,mysql,ajax,angularjs,Javascript,Php,Mysql,Ajax,Angularjs,我正在使用这段代码的一部分对AngularJS进行分页,但我想使用MySQL DB表中名为“user”的数据。。。 但是我面临一个错误,valLists是未定义的,因此它返回null,并且不显示任何内容。。。。我认为数据类型来自select.php导致了这种情况,我不知道如何解决它。。任何帮助 HTML代码: <body> <br /> <br /> <div ng-app="myApp">
<body>
<br />
<br />
<div ng-app="myApp">
<div ng-controller="TableCtrl">
<table class="table">
<thead>
<tr>
<th class="id">User Id
</th>
<th class="name">Name
</th>
<th class="phone">Phone
</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="item in ItemsByPage[currentPage]">
<td>{{item.id}}</td>
<td>{{item.name}}</td>
<td>{{item.phone}}</td>
</tr>
</tbody>
</table>
<ul class="pagination">
<li><a href="#" ng-click="firstPage()">First</a>
</li>
<li ng-repeat="n in range(ItemsByPage.length)"> <a href="#" ng-click="setPage()" ng-bind="n+1">1</a>
</li>
<li><a href="#" ng-click="lastPage()">Last</a>
</li>
</ul>
</div>
</div>
</body>
注1:当使用函数getData1而不是getData时,它运行良好。
注2:我确信select功能运行良好,并提供以下数据:
[{"id":"3","name":"newname","phone":"321"},
{"id":"4","name":"nnnnnnnnnnn","phone":"66555566"}, {"id":"10","name":"dss","phone":"45321"}, {"id":"11","name":"www","phone":"1234"}, {"id":"15","name":"fghjkl","phone":"34567890"}]
尝试使用angular的$http服务。像这样的
var TableCtrl = myApp.controller('TableCtrl', function ($scope, ListService, $http) {
// ...
$http.post('select.php')
.success(function(response) {
$scope.allItems = response;
});
// ...
}
这是因为您不知道Ajax中异步的含义。请您解释一下,或者告诉我该怎么做?同样的错误仍然在出现。。我使用了alertresponse并显示了警报包括这个[object object],[object object],[object object],你知道为什么吗?使用控制台日志查看实际发生的情况。使用警报并没有多大帮助。该响应应该包含来自php的数据。您可以在将数据分配到$scope.alItems之前处理分页逻辑
public function select($table, $rows, $where = null){
$case = 0;
if($this->tableExists($table))
{
$q = ' SELECT ' .$rows.' FROM '.$table;
$query = @mysql_query($q);
$this->numresults = mysql_num_rows($query);
for($i = 0; $i < $this->numresults; $i++)
{
$r = mysql_fetch_array($query);
$key = array_keys($r);
for($x = 0; $x < count($key); $x++)
{
// Sanitizes keys so only alphavalues are allowed
if(!is_int($key[$x]))
{
if(mysql_num_rows($query) > 1)
$this->result[$i][$key[$x]] = $r[$key[$x]];
else if(mysql_num_rows($query) < 1)
$this->result = null;
else
$this->result[$key[$x]] = $r[$key[$x]];
}
// $this->result[$i][$key[$x]] = $r[$key[$x]];
}
}
// print_r ($this->result)."<br/>";
}
else
return false;
}
public function getResult() {
return $this->result;
}
[{"id":"3","name":"newname","phone":"321"},
{"id":"4","name":"nnnnnnnnnnn","phone":"66555566"}, {"id":"10","name":"dss","phone":"45321"}, {"id":"11","name":"www","phone":"1234"}, {"id":"15","name":"fghjkl","phone":"34567890"}]
var TableCtrl = myApp.controller('TableCtrl', function ($scope, ListService, $http) {
// ...
$http.post('select.php')
.success(function(response) {
$scope.allItems = response;
});
// ...
}