PHP和AngularJS关联数组循环

时间:2016-10-13 03:35:45

标签: javascript php angularjs arrays

所以我有一个简单的html文件,这是输出:

enter image description here

html文件代码:

<tr ng-repeat="(key, value) in items">
  <td ng-bind="key"></td>
  <td ng-bind="value"></td>
</tr>

Angular文件

$scope.viewCart = function() {
  $('#cartModal').openModal();
  $http.get('../crud/cartCRUD/cart-data.php')
  .success(function(data) {
  $scope.items = data;
  })
}

推车data.php

print json_encode($_SESSION['cart_items']);

我的$_SESSION['cart-items']是一个包含密钥(product id)=&gt;的关联数组。价值(quantity

如果使用print_r($_SESSION['cart-items'])直接访问php文件,您将获得:

Array
(
    [35] => 23
    [10] => 7
)

意思是,我的html文件的输出是正确的。

现在我想做的不是在我的ng-repeat中显示键和值,而是想使用会话数组键(product id)从mysql数据库中获取产品名称。

现在这就是我做的事情

$statement = $conn->query("SELECT * FROM product WHERE id IN (".implode(',',array_keys($_SESSION['cart_items'])).")");

while($row = $statement->fetch()) {
    $data[] = $row;
}

print json_encode($data);

并在html文件中:

  <table>
     <thead>
        <tr>
           <th>Name</th>
           <th>Price</th>
           <th>Quantity</th>           
        </tr>
     </thead>
     <tbody>
        <tr ng-repeat="item in items">
           <td ng-bind="item.name"></td>
           <td ng-bind="item.price"></td>
           <td>HOW TO OUTPUT THE QUANTITY</td>
        </tr>
     </tbody>
  </table>

这有效但问题是我无法再获得密钥对(数量)的值。这样做是否有正确的方法?

1 个答案:

答案 0 :(得分:0)

在de de while语句中,您可以使用

$row["quantity"] = $_SESSION["cart-items"][$row["id"]];