ajax正在生成[对象对象]?

hel*_*llo 6 javascript ajax jquery

我从我的ajax响应中得到一个[object object].

        $.ajax({
            type: "GET",
            data: "id_1="+id_1+"&id_2="+id_2,
            url:"ajax/url.php"
        }).done(function(data){
            var left= $(data).find("#left");
        $("#left").html(left);
            alert(left);


        });
Run Code Online (Sandbox Code Playgroud)

在我的网址中,我只是简单的编码

if(isset($_GET["id_1"]) && isset($_GET['id_2'])){
    $id_1 = $_GET["id_1"];
    $id_2 = $_GET['id_2'];

    $right= $dbh->prepare("SELECT COUNT(*) FROM table WHERE id_1 = ?");
    $right->execute(array($id_1));
    $left= $dbh->prepare("SELECT COUNT(*) FROM table WHERE id_1 = ? ");
    $left->execute(array($id_2));


    <div id='right'><?php echo $right->fetchColumn();?></div>

    <div id='left'><?php echo $left->fetchColumn();?></div>



}
Run Code Online (Sandbox Code Playgroud)

当我完成所有操作后,它会回复[对象对象]

有谁知道它为什么这样做?

谢谢!

编辑:

我在.done中添加了一些编码(function())

ale*_*lex 11

data是一个对象.[object Object]只是对象的toString()回应.

您需要访问对象的数据.尝试使用console.log(data)检查其内容.

从您的PHP示例看起来您没有按原样提供代码.您发布的代码将是语法错误.

另外,请检查响应的MIME类型.你可能想强迫dataTypeas html.

  • +1因为`console.log()`是你最好的朋友. (2认同)

hel*_*llo 1

我已经解决了我的问题。问题是我需要将我的 div 包裹在另一个 . 之后 find() 方法将能够捕获这些 id 并返回正确的对象。

if(isset($_GET["id_1"]) && isset($_GET['id_2'])){
    $id_1 = $_GET["id_1"];
    $id_2 = $_GET['id_2'];

    $right= $dbh->prepare("SELECT COUNT(*) FROM table WHERE id_1 = ?");
    $right->execute(array($id_1));
    $left= $dbh->prepare("SELECT COUNT(*) FROM table WHERE id_1 = ? ");
    $left->execute(array($id_2));

<div> // wrapper
    <div id='right'><?php echo $right->fetchColumn();?></div>

    <div id='left'><?php echo $left->fetchColumn();?></div>
</div>



}
Run Code Online (Sandbox Code Playgroud)