【发布时间】:2016-03-08 15:17:11
【问题描述】:
我整天坐在这后面。我正在构建一个插件,我正在包括 Angular js。
到目前为止一切都很好,但我无法从数据库中读取 php 文件并将值传递给 angular js
文件.php
<?php
global $wpdb;
$table_name = $wpdb->prefix . 'workout';
$results = $wpdb->get_results(" SELECT title FROM $table_name ");
$arr=[];
$i=0;
foreach($results as $r)
{
$arr[$i]['title'] = $r->title;
$i++;
}
echo json_encode($arr);
//echo '[{"title":"Demo Title"},{"title":"Demo Title"},{"title":"Demo Title"}]';
我知道我的代码有效的方式是,当我取消注释代码上面代码的最后一部分时,代码有效。所以由于某种原因,json序列化无法正常工作,注释代码也是echo json_encode($arr);和echo json_encode($results);返回的内容。为什么 angularjs 什么也没给我?我在这里做错了什么。
controller.js
var app = angular.module('myApp', []);
app.controller('workoutCtrl', ['$scope', '$http', function ($scope, $http) {
$http.get(params.url)
.success(function(data) {
$scope.records = data;
});
}]);
表格
echo '<div ng-app="myApp" ng-controller="workoutCtrl">';
echo '<table class="table">';
echo '<thead>';
echo '<tr >';
echo '<th>Title</th>';
echo ' </tr>';
echo ' </thead>';
echo ' <tbody>';
echo ' <tr ng-repeat = "x in records">';
echo ' <td>{{x.title}}</td>';
echo ' </tr>';
echo ' </tbody>';
echo ' </table>';
echo '</div>';
【问题讨论】:
-
您在 Chrome 浏览器的网络中看到响应了吗?
-
在浏览器中打开该网址...您看到正确的数据了吗?错误处理程序告诉你什么?检查浏览器开发工具网络中的实际请求以获取更多线索
-
您的 php 文件中似乎没有 wordpress 实例
-
你在
echo之后尝试过die(),在wordpress中必须die()特别是在wp_ajax_hookname钩子中。
标签: javascript php angularjs json wordpress