이전에 Ajax를 작성한 적이 없으며 현재 무한 스크롤 페이지를 코딩하려고합니다. 사용자가 페이지 아래쪽으로 스크롤하면 더 많은 항목이로드되지만 현재로드되지 않습니다. 경고는 내가 바닥을 쳤을 때 표시되며,JQuery 게시 메서드가 실행되지 않습니다.
window.onload=function(){
//Find out how many items I have loaded and what filter I am using so I can make the Ajax call
var vloaded = <?php echo $i; ?>;
var vfilter = "<?php echo $filter ?>";
$(window).on('scroll', function() {
if ($(window).height() + $(window).scrollTop() >= $(document).height() - 10) {
//I have reached the bottom of the page, now load items
alert("loaded is " + vloaded + " and filter is " + vfilter);
$.post("/organizer/getMore",
{ filter: vfilter, loaded: vloaded },
function(responseText) {
$("grid").append(responseText);
},"html");
//I've loaded the next 30 items, increment my counter for next time
vloaded +=30;
}
});
}
내 변수가 올바르게 증가한다 : 여기가 바닥을 쳤을 때 감지하고 Ajax 호출을 내 자바 스크립트입니다. 나는 젠드 프레임 워크를 사용하고, 그래서 여기 내 getMoreAction()
함수에 URL 포인트 : 나는 또한 페이지가 처음로드를 사용하고 있기 때문에
public function getmoreAction()
{
//Used by Ajax to get more items for the infinite scroll
//Figure out how I'm filtering items and how many I've already loaded
$filter = $_POST['filter'];
$loaded = $_POST['loaded'];
echo "Filter is ".$filter;
echo "Loaded ".$loaded;
//Get all the items in the database ordered by filter
require_once(APPLICATION_PATH . '/models/ItemArray.php');
$items = ItemArray::getItems($user->getID(), $filter, $loaded);
//Return items back to Ajax call, converted to html
echoItems($items);
}
나는 이미 getItems
기능이 작동 알고, echoItems
단지입니다 루프는 다른 항목에서도 작동하는 각 항목에 대한 html을 표시합니다. 액션의 에코는 절대로 실행되지 않습니다. 그래서 나는 포스트 콜에 문제가 있다고 가정하고 있습니다.
방화 광을 사용합니까? 그렇지 않은 경우 Firefox에 대한 추가 기능으로 ajax 요청의 게시물/응답 (및 기타 자세한 내용)을 빠르게 볼 수 있으므로 빠르고 쉽게 진행되는 것을 볼 수 있습니다. –
또한 Chrome 또는 IE를 사용하는 경우 F12 버튼이 내장 콘솔을 불러옵니다. – efesar
글쎄, 방화 광에서 나는 정의되지 않은 사용자로부터 치명적인 오류가 발생한다는 것을 알았다. 나는 그것을 고쳤다. 그러나 아직도 아무것도 일어나지 않고있다. 아래로 스크롤 할 때마다 경고 상자가 다시 팝업되지만 새 항목이로드되지 않습니다. id 'grid'를 가진 요소의 끝 부분에 변수'responseText'에 포함 된 html을 추가해야합니다. 맞습니까? 또한 파이어 폭스에서는 아래쪽으로 10 픽셀 이내로 스크롤 할 때보 다 10 픽셀 아래로 스크롤 할 때마다 경고 상자가 팝업되는 것으로 보입니다. – jaimerump