【问题标题】:Having problem generating json array in PHP for AngularJS在 PHP 中为 AngularJS 生成 json 数组时出现问题
【发布时间】:2019-08-21 10:08:12
【问题描述】:

在打印角度 http 响应数组时遇到问题?

我在使用 codeigniter 打印我的站点中的数组响应时遇到问题。我试图在选择选项中循环一个角度响应数组。虽然我打印了响应数组,但数组似乎格式正确,但没有发生循环。

<body>
  <div ng-app="app" ng-controller="ctrl">
    <select ng-model="selectedname" ng-options="x.id for x in names"></select>
    <table>
      <tr ng-repeat="x in names">
        <td>{{ x.id }}</td>
      </tr>
    </table>
    <!--<p>You selected : {{ selectedname.id }}</p><p>with color {{selectedname.id }}</p>-->
    <p>{{ names }}</p>
  </div>

</body>

<script>
  var app = angular.module('app', []);

  app.controller('ctrl', function($scope, $http) {
    $http.get("<?php echo base_url().'ap/load_data' ?>").then(function(response) {
      $scope.names = response.data.rec;
    });
  });
</script>

public function load_data(){
    
    $this->load->model('record');
    $data = $this->record->load_all();
    $out = '';
    
    foreach($data as $d){
        if($out){ $out .= ","; }
        $out .= "{'id': '".$d['id']."',";
        $out .= "'subname': '".$d['subname']."'}";
    }
    //$test = "{'rec' : [$out]}";
    $test = "[$out]";
    echo json_encode(array('rec' => $test));            
}

如您所见,{{ names }} 打印以下数组

[
    {'id': '1','subname': 'melbourne'},
    {'id': '2','subname': 'sydney'},
    {'id': '3','subname': 'mumbai'},
    {'id': '4','subname': 'pune'},
    {'id': '5','subname': 'tokyo'},
    {'id': '6','subname': 'osaka'}
]

但数组并没有习惯于使用值创建选择器。 我是 angularjs 的新手,所以解决方案可能很简单,但我不明白。 任何帮助表示赞赏。 谢谢。

【问题讨论】:

  • 不应该是ng-options="x as x.subname for x in names"
  • 尝试打印空选择器。

标签: javascript php angularjs codeigniter


【解决方案1】:

试一试

$out =array();
foreach($data as $d){
    array_push($out, $d);        
}
echo json_encode(array('rec' => $out));

【讨论】:

  • 成功了,谢谢。你能告诉我问题是什么吗。我认为我的响应数组的结构不是很好。
  • 谢谢。这一行是存储在字符串格式中的值 $out .= "{'id': '".$d['id']."',"; $out .= "'subname': '".$d['subname']."'}";并且您存储了一个数组,然后您再次尝试转换有问题的 json 值。所以你得到的不是结构良好的数据
  • 好的,实际上我是在关注网站上的教程。再次感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-23
  • 1970-01-01
  • 1970-01-01
  • 2015-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多