我有一个带角度应用的页面。一切顺利,最终PHP捕获输入中的所有值,除了'prods'字段为空
HTML代码
<form name="goToPaymentForm" id="goToPaymentForm" ng-form-commit action="payment.php" method="POST">
<input type="hidden" id="payment_method" name="payment_method" ng-value="payment" />
<input type="hidden" id="prods" name="prods" ng-value="prods" />
<input type="hidden" id="terms" name="terms" ng-value="legalTermsAccepted" />
</form>
Angular Code
app.directive("ngFormCommit", [function(){
return {
require:"form",
link: function($scope, $el, $attr, $form) {
$form.commit = function() {
$el[0].submit();
};
}
};
}]);
$scope.goToPayment = function($form){
$scope.prods = JSON.stringify($scope.cart);
$form.commit();
}
在控制台中我抓住了这个文字:
资源解释为文档但使用MIME类型application / json
传输
为什么我不使用AJAX发送?我提交表单是因为我有一个控制器,它将浏览器重定向到适当的安全支付平台(尽管有javascript重定向方法,用户无法与此交互)。为什么我做错了?为什么我的prods隐藏字段有空值?
最终的PHP结果
{
payment_method: "paypal",
prods: "",
terms: "true"
}
答案 0 :(得分:1)
我认为你应该使用ng-model指令绑定prods,这样你就可以在AngularJS中获得它的价值。像这样:
<input type="hidden" ng-model="prods" id="prods" name="prods" ng-value="prods" />
以下是有关此指令的文档:https://docs.angularjs.org/api/ng/directive/ngModel