【问题标题】:Angular Js read json data from Wordpress php fileAngular Js 从 Wordpress php 文件中读取 json 数据
【发布时间】: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


【解决方案1】:

需要在php中设置响应头

header('Content-Type: application/json');
echo json_encode($arr);

【讨论】:

  • 那么为什么它可以处理硬编码数据呢?这是个好建议,但不能解决问题
  • 因为您在发送纯文本时发送的是字符串化响应。
  • 请反转反对票。查看相关答案stackoverflow.com/questions/4064444/…
猜你喜欢
  • 1970-01-01
  • 2018-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多