I使用Angular$http将数组发布到php脚本。但是PHP脚本只从数组中获得一个值,我用$http post从angular发送这个值。
角度形状控制器:
form.strategyData = {
mailData : {
strategies : ['test1','test2']
},
sent : false
}
form.processStrategy = function() {
$http({
method : 'POST',
url : '/sform',
data : $httpParamSerializer(form.strategyData.mailData),
headers : { 'Content-Type': 'application/x-www-form-urlencoded' }
})
.success(function(data) {
console.log('success')
});
};
PHP脚本:
$strategies = $_POST['strategies'];
$message .= "Strategies: " . $strategies;
当我使用console.log时,我确实在mailData 中看到了两个测试值['test1','test2']
在PHP中,我只得到最后一个值,即test2
当您调用$httpParamSerializer(form.strategyData.mailData)时,发送到服务器的数据将是"策略=test1&策略=test2"。这就是为什么在PHP中您得到的结果是"test2"。
在php脚本中尝试var_dump($strategies);
。
如果转储中的所有值都是数组,请更新此行的
$message .= "Strategies: " . $strategies;
至
$message .= "Strategies: " . implode(" ", $strategies);