Показать сообщение отдельно
  #37 (permalink)  
Старый 01.03.2014, 10:36
Профессор
Отправить личное сообщение для xTODx Посмотреть профиль Найти все сообщения от xTODx
 
Регистрация: 04.02.2014
Сообщений: 167

$(document).ready(function(){

/* Переменная-флаг для отслеживания того, происходит ли в данный момент ajax-запрос. В самом начале даем ей значение false, т.е. запрос не в процессе выполнения */    
var inProgress = false;
/* С какой статьи надо делать выборку из базы при ajax-запросе */ 
var startFrom = 1;

    /* Используйте вариант $('#more').click(function() для того, чтобы дать пользователю возможность управлять процессом, кликая по кнопке "Дальше" под блоком статей (см. файл index.php) */
    $('#more').click(function(){
		loads();
		});
	function loads(){
		 $.ajax({           
            /* адрес файла-обработчика запроса */
            url: 'obrabotchik.php',
            /* метод отправки данных */
            method: 'POST',
			dataType: 'json', 
            /* данные, которые мы передаем в файл-обработчик */
            data: {"startFrom" : startFrom,
			success: function(jsondata){
			alert(jsondata);
    		add(jsondata);
  			}
			},
            /* что нужно сделать до отправки запрса */
            beforeSend: function() {
            /* меняем значение флага на true, т.е. запрос сейчас в процессе выполнения */
            inProgress = true;}
            /* что нужно сделать по факту выполнения запроса */            
            });   
		
		};
		function add(data){
            alert(1);
            /* Преобразуем результат, пришедший от обработчика - преобразуем json-строку обратно в массив */ 
            
            /* Если массив не пуст (т.е. статьи там есть) */
            if (data.length > 0) {
                
            /* Делаем проход по каждому результату, оказвашемуся в массиве,
            где в index попадает индекс текущего элемента массива, а в data - сама статья */                 
           	 $.each(data, function(index, data){
            
            /* Отбираем по идентификатору блок со статьями и дозаполняем его новыми данными */    
      		      $("#partfolio").append("<p id='newmat"+ data.id +"' class = 'data' style = 'height:0px; opacity:0;'><b>" + data.name+ "</b><br />" + data.id + "</p>");
					$('#newmat'+ data.id).stop().animate({ opacity: "1", height: '50px'}, 1000);
          	  });
            
            /* По факту окончания запроса снова меняем значение флага на false */
            inProgress = false;
            // Увеличиваем на 10 порядковый номер статьи, с которой надо начинать выборку из базы
            startFrom += 10;
            }
		}
		
	$(window).scroll(function() {
        
        /* Если высота окна + высота прокрутки больше или равны высоте всего документа и ajax-запрос в настоящий момент не выполняется, то запускаем ajax-запрос */
        if($(window).scrollTop() + $(window).height() >= $(document).height() && !inProgress) {
       	loads();
        }
    });
});

сделал так, но json undifined
Ответить с цитированием