将数组从Angular传递给php

时间:2016-06-20 10:10:06

标签: javascript php jquery arrays angularjs

我有一个下拉表单,您可以在其中选择一个或多个项目。我想要发送到后端php脚本的选定项目,它将所选值插入数据库。 这是我的角度插入功能:

insertRepair: function (id_telefon, id_culoare, arrayPiese) {
                console.log(arrayPiese);
                http.get('../php/insert_reparatii.php', {
                    params: {id_telefon: id_telefon, arrayPiese: arrayPiese,
                        id_culoare: id_culoare}
                }).then(function () {
                }
            }

对此功能的调用如下所示:

serviceHttp.insertRepair($scope.phoneMP.selected.id, $scope.colorMP.selected.id, $scope.selectedPiesaMP.selected);

如果我在控制台中打印arrayPiese数组,它将打印2个所选项目,如下所示:

["Adezivi_Rama", "Polarizator"]

现在在后端我检索数组列表:

$arr = $_REQUEST['arrayPiese'];

如果我打印$ arr变量,我只会打印两个项目中的一个。 需要提一下,我从jquery迁移到angular,从jquery我能够像这样发送整个数组:

var arrayPiese = [];
$('.select2-selection__choice').each(function () {
    arrayPiese.push($(this).attr('id'));
});

网址看起来像arrayPiese=Adezivi_Rama&arrayPiese=Polarizator&id_culoare=1&id_telefon=18

在将数组发送到php之前是否需要序列化数组?或者将数组发送到后端的最佳方法是什么?

2 个答案:

答案 0 :(得分:4)

您可以将数组作为json传递,

http.get('../php/insert_reparatii.php', {params: {id_telefon: id_telefon, arrayPiese:angular.toJson(arrayPiese),
            id_culoare: id_culoare}
    }).then(function () {
    }

然后在PHP脚本中,将json转换为PHP数组,

    $arrayPiese = json_decode($_GET['arrayPiese'], TRUE);

答案 1 :(得分:2)

arrayPiese=Adezivi_Rama&arrayPiese=Polarizator会生成一个变量$_REQUEST['arrayPiese'],其值为Polarizator,因为后者会覆盖第一个变量。

如果要传递数组,则必须在查询参数名称后附加括号:

arrayPiese[]=Adezivi_Rama&arrayPiese[]=Polarizator

...这将产生一个PHP变量$_REQUEST['arrayPiese'],其数组值如下:

[
    0 => 'Adezivi_Rama',
    1 => 'Polarizator'
]