Angular $ HTTP Post方法只在PHP中获取一个数组值

时间:2016-05-14 17:55:58

标签: php angularjs phpmailer

我使用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

2 个答案:

答案 0 :(得分:1)

当你调用$ httpParamSerializer(form.strategyData.mailData)时,你发送给服务器的数据将是“策略= test1& strategies = test2”。 PHP中你得到的结果就是“test2”。

答案 1 :(得分:0)

在您的php脚本中尝试var_dump($strategies);

如果您将转储中的所有值都作为数组,请更新此行

$message .= "Strategies: " . $strategies;

$message .= "Strategies: " . implode(" ", $strategies);