2012-03-25 21 views
1

私は私のPHPスクリプトにデータを送信しようとするが、私は何かが恋しいと思う。すべてのAjaxとphp - PHPにjavacript配列を送信

まず、上記のコード

function deleteData2() 
    { 
     var artistIds = new Array(); 

     $(".p16 input:checked").each(function(){ 
      artistIds.push($(this).attr('id')); 
     }); 


     $.post('/json/crewonly/deleteDataAjax2', JSON.stringify({'artistIds': artistIds}),function(response){ 
     if(response=='ok') 
      alert(artistIds); 
    }); 


    } 

が私のjsファイルです。私はvar artistIdsのartistIdsを持っています。私の目標は、私のPHPスクリプトにこの配列を送信しています。私はそれをJSONにするために、私はJSON.stringifyでそれをエンコードすることを意味する

PHP側では、私は以下のコードを使用します。 。理由は何でしょうか?

public function deleteDataAjax2() { 

     $array=json_decode($_POST['artistIds']); 

     if (isset($array)) 
      $this->sendJSONResponse('ok'); 

    } 
+1

あなたを持っています'print_r($ _POST)'を試しましたか?このような状況であれば、#1のステップになるはずです。 – JJJ

+0

その残念なことにnull –

+0

申し訳ありませんが、私はあなたを信じていません。 '$ _POST'はポストデータが送られなくても常に配列です。 ( '$ array'ではなく' $ _POST'変数全体を出力してください。) – JJJ

答えて

4

あなたはJSONの生データを文字列として渡しているが、あなたのPHPはapplication/x-www-form-urlencodedとしてデータを解析して、artistIdsキーを調べることで、その文字列を検索しようとしています。

配列がフラットであると仮定します。JSONを忘れます。あなたはそれを必要としません。配列は、その後、平坦でない場合

$.post('/json/crewonly/deleteDataAjax2', 
     { json: JSON.stringify({'artistIds': artistIds}) }, 
     function(response){ 

そして、(適したエラーが追加チェックして):

$.post('/json/crewonly/deleteDataAjax2', {'artistIds': artistIds},function(response){ 

そして

$json = $_POST['json']; 
$data = json_decode($json); 
$artists = $data['artistIds']; 
+0

ありがとうございました。 –

関連する問題