2016-05-14 67 views
0

我使用Angular $ http将数组发布到php脚本。但是PHP脚本只能从我从$ angular post发送的数组中获得单个值。

角形式的控制器:

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我看到的2个测试值[ 'TEST1', 'TEST2']内的MAILDATA

PHP里面我只得到其中的Test2

+1

试试这个$ httpParamSerializerJQLike –

回答

1

当你调用$的最后一个值HTT pParamSerializer(form.strategyData.mailData)将数据发送到服务器将是“strategies = test1 & strategies = test2”。这就是PHP中你得到的结果是“test2”的原因。

0

尝试var_dump($strategies);在您的PHP脚本。

,如果你在你的转储为数组中的所有值,更新该行

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

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