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

时间:2012-03-28 03:54:40

标签: javascript jquery 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);


        });

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

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

中添加了一些编码

5 个答案:

答案 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;