2016-06-20 19 views
2

私は1つ以上のアイテムを選択できるドロップダウンフォームを持っています。選択した値をデータベースに挿入するバックエンドPHPスクリプトに送信する選択項目。 これは私の角度insert関数である:Angularから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() { 
       } 
      } 

この関数の呼び出しは、次のように行われている:私はコンソールにそれが2つの選択した項目のために印刷されますarrayPiese配列、何かを印刷する場合

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

このように:

バックエンドで今
["Adezivi_Rama", "Polarizator"] 

私は配列リストを取得します

$arr = $_REQUEST['arrayPiese']; 

$ arr変数を出力すると、2つの項目のうち1つだけが表示されます。 は、私は、角にjqueryのから移行していることに言及する必要がある、とjQueryから私はこのような配列全体を送信することができました:

URLはこの arrayPiese=Adezivi_Rama&arrayPiese=Polarizator&id_culoare=1&id_telefon=18

のように見えます

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

私は、配列をシリアライズする必要がありますかPHPに送信する前に?または、バックエンドに配列を送信する際の最良の方法は何ですか?

答えて

2

$_REQUEST['arrayPiese']の値はPolarizatorとなり、後者は最初の値を上書きします。

[ 
    0 => 'Adezivi_Rama', 
    1 => 'Polarizator' 
] 
:のような配列値を持つPHP変数 $_REQUEST['arrayPiese']になります

arrayPiese[]=Adezivi_Rama&arrayPiese[]=Polarizator 

...:

あなたは、配列を渡したい場合は、クエリパラメータ名にブラケットを追加する必要があなたはJSONとして配列を渡すことができます

+0

うーん、簡単に見えますが、私はこのユースケースのための角度での方法がある賭ける角度 –

+0

@AndreiMaierasにブラケットを追加する方法を確認する必要があります... – feeela

+0

にJSON onvert私は変更して解決策を見つけました配列のparamを 'params'オブジェクトの中に入れます:' 'arrayPiese []":arrayPiese'これは私にとっては受け入れられる応答でしょう –

4

、あなたのPHPスクリプトで次に

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

、C PHPの配列、

$arrayPiese = json_decode($_GET['arrayPiese'], TRUE); 
関連する問題