ajax正在生成?

我从我的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); }); 

在我的url中,我只是简单的编码

 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));  
fetchColumn();?>
}

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

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

谢谢!

编辑:

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

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

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

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

另外,请检查响应的MIME类型。 您可能希望将dataType强制为html

我已经解决了我的问题。 问题是我需要把我的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)); 
// wrapper
fetchColumn();?>
}

你得到一个对象,而不是一个简单的字符串…看起来“数据”将包含你的页面“url.php”的响应你想在真实的应用程序中使用“数据”做什么? 我假设警报只是一个调试措施?

你在哪里创建你的JSON响应? 我假设它是fetchColumn()方法。 仔细检查以确保您正在准备json_encode()正确…

当你抛弃一切时你会得到什么?

 var_dump( $right ); var_dump( $down ); var_dump( $right->fetchColumn() ); var_dump( $down->fetchColumn() ); 

试试..

 $response = ""; $response .=""; $response .="
".$down->fetchColumn()."
"; echo $response;exit;