我使用Angular $ http将数组发布到php脚本。但PHP脚本只从我使用$ http发送的数组中获取单个值。
角形控制器:
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中看到了2个测试值['test1','test2']
在PHP内部我只得到最后一个值test2
答案 0 :(得分:1)
当你调用$ httpParamSerializer(form.strategyData.mailData)时,你发送给服务器的数据将是“策略= test1& strategies = test2”。 PHP中你得到的结果就是“test2”。
答案 1 :(得分:0)
在您的php脚本中尝试var_dump($strategies);
。
如果您将转储中的所有值都作为数组,请更新此行
$message .= "Strategies: " . $strategies;
到
$message .= "Strategies: " . implode(" ", $strategies);