我从我的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);
});
在我的网址中,我只是一个简单的编码
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>
}
当我完成所有操作后,它会提醒[对象对象]
任何人都知道为什么会这样做?
谢谢!
编辑:
我在.done(function())
中添加了一些编码答案 0 :(得分:11)
data
是一个对象。 [object Object]
只是对象的toString()
响应。
您需要访问对象的数据。尝试使用console.log(data)
检查其内容。
从您的PHP示例看起来您还没有提供代码 。您发布的代码将出现语法错误。
另外,请检查您的回复的MIME类型。您可能希望将dataType
强制为html
。
答案 1 :(得分: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>
}
答案 2 :(得分:0)
您正在获取一个对象,而不是一个简单的字符串......看起来“数据”将包含您网页“url.php”的响应 您想在真实应用中使用“数据”做什么?我假设警报只是一个调试措施?
答案 3 :(得分:0)
您在哪里创建JSON响应?我假设它是fetchColumn()方法。仔细检查以确保您正在准备json_encode()正确...
当你抛弃一切时你会得到什么?
var_dump( $right );
var_dump( $down );
var_dump( $right->fetchColumn() );
var_dump( $down->fetchColumn() );
答案 4 :(得分:0)
试试..
$response = "";
$response .="<div id='right'>".$right->fetchColumn()."</div>";
$response .="<div id='down'>".$down->fetchColumn()."</div>";
echo $response;exit;