2012-03-28 26 views
6

Tôi nhận được [đối tượng đối tượng] từ phản hồi ajax của mình.ajax đang sản xuất [đối tượng đối tượng]?

 $.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); 


     }); 

Trong url của tôi, tôi chỉ có một mã hóa

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> 



} 

Khi tôi này là tất cả được thực hiện, nó cảnh báo lại [đối tượng đối tượng]

ai biết lý do tại sao nó là đơn giản?

Cảm ơn!

EDIT:

tôi đã thêm một số mã trong .done (chức năng())

Trả lời

1

Tôi đã giải quyết vấn đề của tôi. Vấn đề là tôi cần phải bọc div của mình trong một cái khác. Sau đó phương thức find() sẽ có khả năng nắm bắt các id đó và trả về các đối tượng thích hợp.

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> 



} 
11

data là một đối tượng. [object Object] chỉ là phản hồi toString() của đối tượng.

Bạn cần truy cập dữ liệu của đối tượng. Hãy thử sử dụng console.log(data) để kiểm tra nội dung của nó.

Có vẻ như từ ví dụ PHP của bạn rằng bạn chưa cung cấp mã . Mã bạn đăng sẽ là lỗi cú pháp.

Ngoài ra, hãy kiểm tra loại phản hồi MIME của bạn. Bạn có thể muốn buộc dataType làm html.

+2

+1 Vì 'console.log()' là bạn thân nhất của bạn. – msanford

+1

Mọi người đều bị buộc phải đọc [SSCCE] (http://sscce.org/) trước khi đăng câu hỏi lên SO – Phil

+0

@Phil Liên kết tuyệt vời! :) – alex

0

Bạn đang nhận lại đối tượng chứ không phải chuỗi đơn giản ... Có vẻ như "dữ liệu" sẽ chứa phản hồi từ trang "url.php" Bạn đang cố gắng làm gì với "dữ liệu" trong ứng dụng thực sự? Tôi giả định cảnh báo chỉ là một biện pháp gỡ lỗi?

+0

Treo lên trình gỡ rối JS (trong trình duyệt) để xem bạn phải làm gì ở đây :-) – TGH

0

Bạn đang tạo phản hồi JSON ở đâu? Tôi giả sử nó là phương thức fetchColumn(). Kiểm tra kỹ để đảm bảo rằng bạn đang chuẩn bị với json_encode() đúng cách ...

Bạn nhận được gì khi bạn đổ mọi thứ?

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

Hãy thử ..

$response = ""; 
$response .="<div id='right'>".$right->fetchColumn()."</div>"; 
$response .="<div id='down'>".$down->fetchColumn()."</div>"; 

echo $response;exit; 
Các vấn đề liên quan