我使用$ http.post()方法将angularjs控制器中的变量发布到同一文件夹中的php文件中。但在php页面中,我能够检索变量。变量未定义。
这是角度代码
$scope.checkout = function(){
$http({
url:"checkout.php",
method : 'POST',
data :{
'total':$scope.total
},
headers : {'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8'}
}).success(function(data, status, headers, config) {
window.location.href = 'checkout.php'
}).error(function(data, status, headers, config) {
console.log("not done");
});
}
这里是php代码
<?php
$_SESSION['bill_amount'] = $_POST['total'];
echo $_SESSION['bill_amount'];
?>
但我收到的错误是总数未定义。
答案 0 :(得分:1)
您正在发送数据,但Angular默认以JSON
格式发送,您需要解码JSON,因此在您的php文件中使用JSON
函数解码json_decode
。完整代码如下:
<?php
$data = json_decode(file_get_contents("php://input"));
$total = $data->total; // $_POST['total'];
$_SESSION['bill_amount'] = $total;
?>
答案 1 :(得分:1)
我找到了答案。我创建了一个名为middleware.php的中间页面,我将后期数据存储到会话变量中,成功时我将重定向到checkout.php并通过会话变量使用post值。