簡體   English   中英

將數組從Angular傳遞到php

[英]Passing an array from Angular to php

我有一個下拉菜單,您可以在其中選擇一項或多項。 我要發送到后端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之前需要序列化嗎? 還是將數組發送到后端的最佳方法是什么?

您可以將數組作為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);

arrayPiese=Adezivi_Rama&arrayPiese=Polarizator將導致單個變量$_REQUEST['arrayPiese']的值為Polarizator因為后者會覆蓋第一個變量。

如果要傳遞數組,則必須在查詢參數名稱后加上方括號:

arrayPiese[]=Adezivi_Rama&arrayPiese[]=Polarizator

…這將導致PHP變量$_REQUEST['arrayPiese']的數組值如下:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM