2016-05-14 70 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);