我有一个下拉表单,您可以在其中选择一个或多个项目。我想要发送到后端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之前是否需要序列化数组?或者将数组发送到后端的最佳方法是什么?
答案 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'
]