我有一个像这样的数组
$scope.kk = [
{ name:'Computer Architecture', price:65 },
{ name:'Advanced Composite Materials', price:45 },
{ name:'Stategies Unplugged', price:43 },
{ name:'Teaching Science', price:50 },
{ name:'Challenging Times', price:22 }];
我已经通过像这样的webapi将这个数组传递给了我的控制器
var req1= {
method: 'POST',
url: apiPoint.url + 'sin.php',
headers: {
'Content-Type': 'application/json'
},
params :{
"fulldet[]" : $scope.kk
}
$http(req1).then(function (response) {
if (response.data.status) {
alert(JSON.stringify(response.data));
}
}
在我的控制器中我需要提取这个数组 我使用了像这样的foreach语句
$result['ppp'] = $fulldet;
foreach($fulldet as $e){
$result['lm']=$e['name'];
}
但我得到了ILLEGAL STRING OFFSET 'name'
请帮帮我。
对于我的参考,我在控制器的响应之后打印了我的阵列。我明白了这个
{"ppp":["
{\" name\":\"Computer Architecture\", \"price\":65 },
{\" name\":\"Advanced Composite Materials\", \"price\":45 },
{ \"name\":\"Stategies Unplugged\", \"price\":43 },
{\" name\":\"Teaching Science\", \"price\":50 },
{\" name\":\"Challenging Times\", \"price\":22 }"]}
答案 0 :(得分:1)
在尝试迭代数组之前,将json_decode应用于它。
$result['ppp'] = json_decode($fulldet, true);
foreach($fulldet as $e){
$result['lm']=$e['name'];
}
答案 1 :(得分:-1)
正如我现在看到的,您的问题是当您尝试在服务器端获取数据时(抱歉,以前的答案)。
您在请求中传递的参数应为字符串而不是数组
所以你改变了这个:
params :{
"fulldet[]" : $scope.kk
}
到此:
params :{
"fulldet" : $scope.kk
}
尝试获取这样的POST数据:
$results = json_decode(file_get_contents('php://input),true);
foreach($results as $item){
echo $item['name'];
}