我正在使用 AngularJS 和 PHP 为自己创建一个小商店系统(学习目的),我遇到了以下问题:
我创建了一个动态购物车,并在ng-click
上填充了列表中点击对象的一些信息。我保存到名为scope.cart
的范围变量,然后由购物车表中的ng-repeat
显示。然后我还自动创建了隐藏的输入字段,以便在提交后将它们传递给$_POST
变量。因为提交后我的POST是空的,所以我尝试使用ng-submit
指令在发送公式时从scope.cart
数组中创建一个json文件,因此我可以通过PHP调用它。但这也不起作用。现在我陷入困境,不知道问题可能是什么。
但是我认为即使浏览器在源代码中动态添加新字段,输入字段也是空的,当我点击提交时,会显示空购物车的状态。
解决问题的最佳方法是什么,并将AngJS数据发送到服务器?
navApp.controller('MainCtrl', ['$scope', '$http', function (scope, http){
scope.submit = function() {
var time = Math.floor(Date.now() / 1000);
http.post('../dampfen/cfg/orders/cart_' + time + '.json', scope.cart).then(function(data) {
alert("Order successfully transferred!");
});
}
}]);
<div class="panel-body">
<table class="table table-hover">
<thead><tr><th colspan="4">Bestellung</th></thead><tbody>
<form name="orderForm" method="POST" ng-submit="submit()" action="index.php?checkout">
<tr ng-repeat="item in cart">
<input type="hidden" name="order[]" value="{{item.id}}" />
<td>1x</td><td><strong>{{item.name}}</strong></td><td>{{item.preis}} <span class="glyphicon glyphicon-euro"></span></td><td><button class="btn btn-xs btn-danger" ng-click="removeFromCart($index)"><span class="glyphicon glyphicon-remove"></span></button></td></tr>
</tbody>
</table>
</div>
<div class="panel-footer">
<p class="text-right"><strong>{{cart.sum}} <span class="glyphicon glyphicon-euro"></span></strong></p>
<p class="text-left"><button type="submit" class="btn btn-sm btn-success">Checkout</button> <button type="button" class="btn btn-sm btn-danger" ng-click="deleteCart()">Warenkorb löschen</button></p>
</form>
答案 0 :(得分:0)
<form>
个元素不能是<tbody>
元素的子节点。
您可以在表单中包含整个表。您可以在表 cell 中包含整个表单。
其他任何导致浏览器错误恢复的问题都可以将表单转储到表外,而不会将输入放在后面。
使用basic QA。写有效的HTML。