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値です:

{"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));
        }
    }
4

2 に答える 2

2

dataType:'json'のオプションに追加し、成功関数$.ajaxのパラメーターdataを他の配列オブジェクトとして使用して反復します

$.each(data, function( .. ) { .. } ):
于 2012-09-16T22:45:09.980 に答える
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'$。ajaxのオプションに追加し、success関数のパラメーターデータを次のように使用します。

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");        
}
于 2012-09-17T07:30:20.453 に答える