1

JSONデータを作成するクリックイベントがあり、処理のためにPHPファイルにPOSTしたいと考えています。しかし、何かがうまくいかない。私のPHPファイルは、今のところ次のように単純化されています。

<?php
header('Content-Type: application/json');
 var_dump($_POST);
?>

POST のコードは次のようになります。

// myarray is: var myarray = new Array(); 
// and it gets populated above this code

var strObj = JSON.stringify(myarray);
alert(strObj); // so far I get the alert containing valid JSON text
$.ajax ({
  type:"POST",
  url:"proces.php",
  contentType: "application/json",
  dataType: "json",
  async: false,
  data: strObj,
  success: function(){ alert("success")},
  error: function(){ alert("error")}
});

したがって、ボタンをクリックすると、JSON 文字列を含むアラートが表示され (問題ないように見えます)、「エラー」というアラートが表示されます。コンソールで proces.php の応答を確認すると、次のように表示されます。

array(0) {
}

私は何を間違っていますか?正しくするにはどうすればよいですか?

4

2 に答える 2

1

自力で答えが出ました。トリックを行うようです:

$.post("proces.php", {json: JSON.stringify(myarray)}, function(data){alert(data);});

つまり、アラート(データ)が表示されません。(おそらく、php ファイルから JSON を返さないため) しかし、PHP では json データを表示できるようになりました。

于 2013-07-11T12:21:04.830 に答える
1

これは私にとってはうまくいきました:

$.ajax ({
  type:"POST",
  url:"proces.php",
  dataType: "json",
  async: false,
  data: {tmp: strObj},
  success: function(){ alert("success")},
  error: function(){ alert("error")}
});
于 2013-07-11T12:14:21.413 に答える