2017-01-11 10 views
0

問題があります。 Angular.jsとPHPを使用してフォームを送信しています。 $httpサービスを使用してサーバー側にデータの配列を送信していますが、サーバー側では値が得られません。私は以下のコードを説明しています。PHPとAngular.jsのポスト・メソスを使用して配列データを取得できません

var supplierData=$("#billdata").serialize(); 
supplierData+= "&image="+newpath+"&action=add"+"&special="+$scope.example14model; 
$http({ 
    method:'POST', 
    url:"php/customerInfo.php", 
    data:supplierData, 
    headers: { 'Content-Type': 'application/x-www-form-urlencoded' } 
}).then(function successCallback(response){ 
    console.log('respon',response.data); 
},function errorCallback(response) { 
}) 

ここでは、は以下のようなデータの配列をとっています。

$scope.example14model=[ 
     {'id':1}, 
     {'id':2} 
] 

私は

$mulspec=$_POST['special']; 

そのは、任意のデータを与えたが、この値を印刷しながら[object Object],[object Object]のように表示されていない以下のようにサーバ側でこれらのデータをフェッチしていますが。私はここですべての配列データを取得する必要があります。私を助けてください。

+0

配列内の項目をカウントすることができるはずです( '+ $ scope.example14model').You'llは、おそらく、それをシリアル化したいですJSON.stringify(...)を使用するなど、何らかの方法で実行できます。 –

+0

'respond [オブジェクトオブジェクト] [オブジェクトオブジェクト]'を出力してはいけませんか?それを印刷したり、変数に格納したりしますか? [this](https://jsfiddle.net/steu4w5v/)のように 'JSON.stringify()'を使うことができます。 –

答えて

0

あなたは次のようにします。

"&special="+$scope.example14model 

それだけで、これはあなたが見ている何を与えるexample14modelプロパティに対してtoStringを行うと、デフォルトではされています。あなたがしなければならないことは、それをjsonに変換することだと思います。試してみてください:

"&special="+JSON.stringify($scope.example14model) 

あなたは、あなたがそれで何をしたいかに応じて、オブジェクトにいくつかの直列化を行う必要があるかもしれませんので、これは、JSON文字列としてサーバ側で通ってくるだろう。

コメントの後に更新。 PHPでJSONを自分で使ったことはありませんが、データからオブジェクトを取得するには、次のように動作すると思います。

$json=$_POST['special']; 
$mulspec=json_decode($json); 

echo(count($mulspec)); 

あなたは今、あなたは文字列としてjavascriptオブジェクトを使用している

+0

私はあなたのようにして、 '[{" id ":" 1 "}、{" id ":" 2 "}]'これを値として扱いましたが、 'echo(count($ mulspec )); 'それは' 1'を表示しますが、 '2'でなければなりません。 – subhra

+0

結果には文字列が含まれているので、countは1つのオブジェクトとして1だけを返します。私はPHPでそれを自分でやったわけではありませんが、その値を配列に逆シリアル化してその配列の数を取得する必要があります。クイック検索があったと私はこれが助けることができると思う。 http://php.net/manual/en/function.json-decode.php – Dhunt

関連する問題