-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();

?>

这是我的 html 代码,其中 jquery 和 json 保存为 index2.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将您的从更改jsonpjson.

dataType: "json",
于 2012-10-07T04:37:03.380 回答
1

ajax 调用的错误回调可以采用三个参数。第二个和第三个参数应该让您更好地了解出了什么问题。

来自jQuery ajax 文档

第二个参数(除了 null)的可能值是“timeout”、“error”、“abort”和“parsererror”。发生 HTTP 错误时,errorThrown 会接收 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 回答