Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.07.2015, 20:36
Аспирант
Отправить личное сообщение для Eliot456 Посмотреть профиль Найти все сообщения от Eliot456
 
Регистрация: 26.05.2015
Сообщений: 44

Сервер шлет html код после контента
Доброго вечера всем. Реализую скролл пагинацию на сайте, после всего контента еще подгружается html код Подскажите как быть?
Вот яваскрипт код:
var page;
	var param = location.search.slice(location.search.indexOf('?')+1).split('&');//Получаю параметр page из адресной строки
	var result = [];
	for(var i = 0;i < param.length; i++){
		var res = param[i].split('=');
		result[res[0]] = res[1];
	}
	if(result['page']){
		page = result['page'];
	}else{
		page =1;
	}

	var block = false;
	$(window).scroll(function(){
		if($(window).height() + $(window).scrollTop() >= $(document).height() - 500 && !block){
			block = true;
			$('.load').fadeIn(500, function(){
				page++;
				$.ajax({
					url:"http://nastroenie2/articles",
					type:"GET",
					data:"page="+page,
					success:function(html){
						if(html){
							$(html).appendTo($('.articles-line')).hide().fadeIn(1000);
						}
						$('.load').fadeOut(500);
						block = false;
					}
				})
			})
		}
	})


Вот скрипт обработчика:
if($this->request->is('ajax')){
			 foreach($articles_order as $key => $value){
			 	$img = '/app/webroot/img/news_img/thumbs/1.jpg';
			 	if($value['Article']['color_head'] == 1){
			 		$color_head = 'style="color:#f6340e"';
			 	} else{
			 		$color_head = '';
			 	}
			 	$title = mb_substr($value['Article']['title'], 0, 50);
			 	if(mb_strlen($value['Article']['title']) > 50){
			 		$title = mb_substr($value['Article']['title'], 0, 50).'...';
			 	}
			 	$introtext = mb_substr(strip_tags($value['Article']['introtext']), 0, 200);
			 	if(mb_strlen(strip_tags($value['Article']['introtext'])) > 200){
			 		$introtext = mb_substr(strip_tags($value['Article']['introtext']), 0, 200).'...';
			 	}
	            printf("<div>
							<div>
								<a href=''><img src='%s' alt=''></a>
							</div>
							<div>
								<h3><a %s href=''>%s</a></h3>
								<strong>%s</strong>
								<p><a href=''>%s</a></p>
								<div class='news-icons'><span>12</span><span>%s</span></div>
							</div>
						</div>",
						$img,
						$color_head,
						$title,
						$value['Article']['created'],
						$introtext,
						$value['Article']['hits']
						);
           }
           exit();
		}
	}

Функция exit() не помогает, не знаю в чем может быть проблема...
Ответить с цитированием
  #2 (permalink)  
Старый 15.07.2015, 20:44
Аспирант
Отправить личное сообщение для Eliot456 Посмотреть профиль Найти все сообщения от Eliot456
 
Регистрация: 26.05.2015
Сообщений: 44

Вот скрин консолиБезымянный.jpg
Ответить с цитированием
  #3 (permalink)  
Старый 15.07.2015, 21:19
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

А причем тут exit, в данном случае это будет выход из цикла, и что?
Ответить с цитированием
  #4 (permalink)  
Старый 15.07.2015, 21:36
Аспирант
Отправить личное сообщение для Eliot456 Посмотреть профиль Найти все сообщения от Eliot456
 
Регистрация: 26.05.2015
Сообщений: 44

exit() идет после цикла и никак на него не влияет, обычно ставлю данную функцию чтобы сервер не отправлял html код типа
<!DOCTYPE html>
<html lang="ru">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="X-UA-Compatible"
content="IE=edge">....
после всего контента.
В общем дописал в яваскрипте после success
error:function(){
	$('.load').fadeOut(500);
}

Визуально все круто, не знаю как решить данную проблему, но хоть простому пользователю все будет казаться нормально пока не решу...
Ответить с цитированием
  #5 (permalink)  
Старый 15.07.2015, 21:40
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

exit() - прервет цикл после первой итерации и закончит работу скрипта, а ошибка о том, что не найдено по адресу. Так при чем тут exit?
Ответить с цитированием
  #6 (permalink)  
Старый 15.07.2015, 21:47
Аспирант
Отправить личное сообщение для Eliot456 Посмотреть профиль Найти все сообщения от Eliot456
 
Регистрация: 26.05.2015
Сообщений: 44

Я лишнюю скобку в конце поставил, можете скопировать код в текстовый редактор и убедиться, что exit() идет после цикла. Пока с вами спорил на ум пришла мысль проверить каким нибудь образом количество отправляемых страниц и сравнить это количество со значением в яваскрипте. Проблема как раз таки в том что отправляется третья страница в то время как их всего две. Если у вас есть решение рад буду выслушать
Ответить с цитированием
  #7 (permalink)  
Старый 15.07.2015, 21:50
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

А location не есть http://nastroenie2/articles ?
Ответить с цитированием
  #8 (permalink)  
Старый 15.07.2015, 21:53
Аспирант
Отправить личное сообщение для Eliot456 Посмотреть профиль Найти все сообщения от Eliot456
 
Регистрация: 26.05.2015
Сообщений: 44

Сообщение от laimas Посмотреть сообщение
А location не есть http://nastroenie2/articles ?
И что вы этим хотели сказать?
Ответить с цитированием
  #9 (permalink)  
Старый 15.07.2015, 21:59
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

location.search.slice(location.search.indexOf('?') +1).split('&'); - это для чего?

Если адрес указанный в Ajax, это запрос к другому скрипту, по адресу http://nastroenie2/articles, то еще можно понять. Но если запрос к текущей странице, то зачем, почему не:

url: location,

?
Ответить с цитированием
  #10 (permalink)  
Старый 15.07.2015, 22:09
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от Eliot456
Получаю параметр page
Найдите тут "класс" GET чтоб любые параметры доставать и задавать.

По теме. Я вообще не понял в чем проблема. Это же тривиальная задача - запросить страницу и выдать через какой-нить partial_render() что затребовано.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выравнял код, после IE стал криво отображать таблицу. lamer Общие вопросы Javascript 10 21.06.2012 13:01
Код при котором пользователь после оплаты на сайте переходил на нужную страницу сайта mvi10 Общие вопросы Javascript 1 24.04.2012 02:03
Как передать код html страницы из фрейма на сервер vuler Общие вопросы Javascript 5 20.02.2012 16:31
Выполнить код после обработки скрипта RasimS Общие вопросы Javascript 2 11.02.2011 15:25
Выполнить код после загрузки изображения EugenyK Events/DOM/Window 2 15.07.2008 10:09