2

最初の成功関数は機能しますが、2番目は機能しません...データ型をテキストに変更すると機能します...しかし、データ型をテキストに変更すると、配列を反復処理できません..たとえば、data[0]が必要です。これはjsonで動作します....しかしjsonではsuccess関数が動作していません...

var turl = "getForum.php";
var turl = "getForum.php";
var wurl = "getDiscussions.php";
$.ajax({
    url:turl,
    type:"POST",
    dataType:"json",
    success:function(data){
        forumid = data[0]; // this works ...
        dataString = 'forumid='+ forumid;
        $.ajax({
            url:wurl,
            type:"POST",
            dataType:"json",
            data:dataString,
            success:function(data){
                alert(data); // this works if I change datatype to text... but if i type datatype to   text am not able to iterate through the array .. for example i require data[0].. which works with json....but with json success function is not working ... 
            }
        });
    }
});

phpファイルはjsonオブジェクトを返します

$query1 = " select * from discussforum where forumId= '$forumid'; ";
$result1 = mysql_query($query1); 

 while($info1 = mysql_fetch_array( $result1 )){
 echo json_encode($info1);
 }
4

2 に答える 2

2

PHPがJSONオブジェクトを1つだけ返すことを確認しますか?そうでない場合:

$ret = array();
while($info1 = mysql_fetch_array( $result1 )){
    $ret[] = $info1;
}
print json_encode($ret);
于 2012-11-24T18:47:38.217 に答える
0

解決策はコメントで説明されていると思いますが、ここではもう少し詳しく説明します。まず、 jQuery.ajax()の詳細なドキュメントをご覧ください。すべてのAjax呼び出しにエラーコールバックを追加する必要があります。次の署名付き:

error(jqXHR, textStatus, errorThrown)

次のように.ajax()にパラメータを追加するだけです。

error: function(jqXHR, textStatus, errorThrown) {
  console.error(textStatus);
},

このようにして、Ajax呼び出し中およびメッセージの処理中に発生するすべてのエラーがコンソールに表示されます。一般的なajaxErrorコールバックをいくつかの一般的な.jsファイルで定義して、どこでも使用できます。

この場合、エラーの原因を非常によく説明しています。getDiscussions.php返されるのはJSONではないため、設定するとjQueryパーサーはそれを理解できません。コールバックがあればdataType:"json"それを呼び出します。errorただし、dataTypeがtextに設定されている場合は機能します。したがって、POSTリクエストはおそらく失敗しています。

送信内容を確認するには、次のようにエラーコールバックで抽出します。

error: function(jqXHR, textStatus, errorThrown) {
  console.error('Error in response: ' + jqXHR.responseText
},

サーバーの問題を診断できます。

于 2012-11-24T18:53:09.010 に答える