2011-06-14 99 views
0

我想建立一個「加載更多」的帖子功能,通過jquery發出請求並添加更多帖子。基本上我用這個代碼:如何檢查Jquery Ajax的響應調用加載更多帖子功能

function loadMore(pageNo) { 
    var url = '/users?page='; 
    $.get(url + pageNo, function(response) { 
    $("#users").append(response); 
    }); 
} 

$(document).ready(function() { 
    var currPage = 1; 
    $("a.next").click(function() { 
    loadMore(++currPage); 
    }); 
}); 

這一切都完美的作品,但我有麻煩的是,如果沒有更多內容加載處理響應。

基本上,我需要檢查響應,如果空白,執行一些操作,如隱藏加載更多鏈接,我知道該怎麼做。我只需要幫助檢查響應。我想象了這些行(一些僞代碼)的東西,但無法弄清楚。沒有jQuery的大師:(

function loadMore(pageNo) { 
    var url = '/users?page='; 
    $.get(url + pageNo, function(response) { 
    if response not blank 
     $("#users").append(response); 
    else 
     hide anchor or change text to "No More Posts" 
    end 
    }); 
} 

我的服務器用,即使沒有更多的職位200碼響應,我應該在事件有不同的響應服務器有沒有更多內容加載?我猜我只是不知道處理沒有更多帖子加載的情況的正確方法,現在沒有任何反應,我的應用沒有給用戶任何類型的反饋,表明他們已經加載了所有可用的帖子。

非常感謝!

回答

0
function loadMore(pageNo) { 
    var url = '/users?page='; 
    $.get(url + pageNo, function(response) { 
    if (response == "") { 
     $("a.next").hide(); 
    } 
    else { 
     $("#users").append(response); 
    } 
    }); 
} 
+0

lol。這樣可行。我以爲有些事情我不得不去做。我是這樣一個白癡。謝謝。 – James 2011-06-14 08:22:30

0

There a有幾種方法可以解決這個問題,但是你的sudo代碼中有什麼是正確的。根據您的「響應」格式的不同,您可以檢查響應值。如果它只是純文本或html,你可以用一個空字符串來檢查它。

我個人會從服務器返回一個JSON對象有兩個值,一個have_more標誌和數據標誌,然後你可以檢查像這樣的反應,

if(response.have_more) 
{ 
    $("users").append(response.data); 
} 
else 
{ 
    //hide more link 
} 

您可以構建在PHP中JSON陣列用類似的服務器,

<?php 
$query_results = getPosts(offset, amount); 
if(count($query_results) > 0) 
{ 
    $json['data'] = $query_results; 
    $json['have_more'] = true; 
} 
else 
{ 
    $json['have_more'] = false; 
} 
echo json_encode($json); 

使用JSON對象上可能沒有必要在這裏,但它使好的做法,特別是如果你決定要在將來返回一些額外的數據。

+0

好主意。謝謝! – James 2011-06-14 08:24:02