-4

これはdb2.phpとして保存された私のphpコードです

<?php

      mysql_connect("mysql15.000webhost.com","a3189966_root","");

      mysql_select_db("a3189966_pd");
      $firstName = $_GET[firstName];
      echo $firstName;
      $q=mysql_query("SELECT * FROM people where first='$firstName'");

      while($e=mysql_fetch_assoc($q))
              $output[]=$e;

            $json = json_encode($output);
            echo($json);

    mysql_close();

?>

これは、jqueryとjsonをindex2.htmlとして保存した私のhtmlコードです。

    $("#myForm").submit(function(){
                    var postData = $(this).serialize();
                    $.ajax({
                        type: "GET",
                        dataType: "json",
                        data: $("#myForm").serialize(),
                        url: "db2.php",
                        success: function(data){
                            alert("processing now" + data);
                                  $.each(data,function(i,item){
                                                          alert("processing each data now");
                                      $('<li></li>').html(item.first + " " + item.last).appendTo('#data');
                                  });
                        },
                        error: function(data){alert("failed"+data);}
                    });
                return false;
                });

    <form id="myForm" method="GET" action="">
    <input type="textbox" name="firstName" id="firstName">
    <input type="submit" name="myButton" value="submit">
</form>
<ul id="data">
</ul>

以下のhtmlコードを実行した後、エラーが表示されるだけです。数時間チェックしましたが、このコードが正しく実行されるためのエラーは表示されません。これは、phpから返されるjsonオブジェクトです。

[{"id":"1","first":"wen","last":"hao","age":"123"}]
4

2 に答える 2

1

dataTypeからjsonpに変更しますjson

dataType: "json",
于 2012-10-07T04:37:03.380 に答える
1

ajax呼び出しのエラーコールバックは、3つの引数を取ることができます。2番目と3番目の引数は、何が問題になっているのかをよりよく理解できるはずです。

jQuery ajaxドキュメントから:

2番目の引数(null以外)に指定できる値は、「timeout」、「error」、「abort」、および「parsererror」です。HTTPエラーが発生すると、errorThrownは、「NotFound」や「InternalServerError」などのHTTPステータスのテキスト部分を受け取ります。

したがって、ajax呼び出しには次のようなものを試してください。

$.ajax({
    type: "GET",
    dataType: "json",
    data: $("#myForm").serialize(),
    url: "db2.php",
    success: function(data){
        alert("processing now" + data);
        $.each(data,function(i,item){
            alert("processing each data now");
             $('<li></li>').html(item.first + " " + item.last).appendTo('#data');
        });
    },
    error: function(jqXHR, textStatus, errorThrown) {
        alert(textStatus);
        if(errorThrown) {
            alert(errorThrown);
        }
    }
});
于 2012-10-07T05:05:48.363 に答える