我有一个包含两个字段的简单表单。
<form name="save" ng-submit="sap.saved(save.$valid)" novalidate>
<div class="form-group" >
<input type="text" name="name" id="name" ng-model="sap.name" />
</div>
<div class="form-group" >
<input type="email" name="email" id="email" ng-model="sap.email" />
</div>
<div class="form-actions">
<button type="submit" ng-disabled="save.$invalid || sap.dataLoading">Save</button>
</div>
</form>
我正在尝试使用post请求将这些值发布到php页面。
$http({
method: 'post',
url: 'save.php',
data: $scope.vm,
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
})
.success(function(data, status, headers, config)
{
if(data.success)
{
alert('valid');
}
else
{
alert('invalid 1');
}
}).
error(function(data, status, headers, config)
{
alert('invalid 2');
});
在save.php文件中,我获取的值如下:
$name=$_POST['name'];
$email=$_POST['email'];
但我得到的回应是未定义的变量名。这是PHP通知。但当我尝试从POSTman客户端发布这些值时,它是有效的。我选择的POST数据的方法有什么问题吗?
p.S:我没有发布整个控制器。这里只包含http请求部分。
我遇到了同样的情况,$_POST()
并没有成功!
尝试使用获取原始数据
json_decode(file_get_contents('php://input'))
可能会有所帮助。
更新:
这个答案解释了为什么php中没有填充$_POST变量当数据以角度发布时!