2012-09-16 59 views
0
$('.more').live("click",function() { 
    var id = $('.wallPosts:last').attr("relOne"); 
    $.ajax({ 
     type: "POST", 
     url: "<?=base_url()?>index.php/regUserDash/ajaxMore", 
     data: {id: id}, 
     cache: false, 
     success: function(data) { 
       $("#morebox").append(data.idWallPosts); 
     } 
    }); 
}); 

使用上面的代碼我將如何輸出一堆json返回的值?下面是我的JSON值:輸出一串json返回值

{"idwallPosts":"803"}{"idwallPosts":"798"}{"idwallPosts":"797"}{"idwallPosts":"796"}{"idwallPosts":"793"}{"idwallPosts":"792"}{"idwallPosts":"789"}{"idwallPosts":"785"}{"idwallPosts":"780"} 

下面是我笨代碼:

public function ajaxMore() { 
     $id = $this->input->post('id'); 
     $result = $this->db->query("SELECT * FROM wallposts WHERE idwallPosts < '$id' ORDER BY idwallPosts DESC LIMIT 9"); 
     foreach($result->result() as $row) { 
      echo json_encode(array('idwallPosts' => $row->idwallPosts)); 
     } 
    } 
+0

你的JSON值應列爲包裹在一個單一的屬性對象..'{「key1」:「val」,「key2」:「val2」,...} – Stphane

回答

1

,則應該更換ajaxMore()功能類似:

public function ajaxMore() { 
    $id = $this->input->post('id'); 
    $result = $this->db->query("SELECT * FROM wallposts WHERE idwallPosts < '$id' ORDER BY idwallPosts DESC LIMIT 9"); 

    $idwallPosts = array(); 
    foreach($result->result() as $row) 
    { 
     $idwallPosts[] = $row->idwallPosts)); 
    } 

    print json_encode(array('posts'=>$idwallPosts)); 
    exit; 
} 

在Ajax調用,在成功的功能添加到dataType:'json'的$阿賈克斯的選項,使用參數數據:

success: function(data) { 
    var div_to_append = "<div>"; 

    $.each(data.posts, function(i,post){ 
     div_to_append += "<p>" + post + "</p>"; 
    }); 

    $(div_to_append).appendTo("#morebox");   
} 
+0

我已經這樣做了,但idWallPosts沒有被識別。 http://pastebin.com/t8BF6eDk - 當我運行code1時,我得到了未定義。但是當我替換this.idWallPosts與data.idWallPosts我得到以下警報:[對象對象],[對象對象],[對象對象],[對象對象],[對象對象],[對象對象],[對象對象],[對象對象],[對象對象],。你知道如何解決這個問題嗎? –

+0

@ Michael-Grigsby我改變了我的答案。你試過了嗎?它應該工作 – qais

2

添加dataType:'json'$.ajax的選項,使用參數data的成功起到任何其他數組對象迭代它

$.each(data, function(..) { .. }):