Javascript.RU

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

history API и show more
всем привет! прошу помочь, никак не могу понять в чем проблема

начал использовать history API

хочу сделать кнопку как на одноклассниках "загрузить еще"
при открытие страницы выходит 3 записи и тут все ок, но при нажатие на кнопку загрузить еще, между
<div id="list_pp"></div>

выходит сам сайт в контент, не могу понять в чем проблема

сделал скриншоты до
http://s22.postimg.org/fzr0jouhd/img_1.png

после нажатие на кнопку
http://s17.postimg.org/i99zy9r26/img_2.jpg

на странице
<?
    list($total_nums) = mysqli_fetch_row($mysqli->query("SELECT COUNT(`id`) FROM `dmtvs`"));
    $total_pages = ceil($total_nums/$site['per_page']); //NUMBER OF PAGE FOR RESULTS

?>


<script type="text/javascript"> 
$(function(){
    var page = 1;
    var pages = $("#pages").val(); //TOTAL NUMBER OF PAGES

    $("#list_pp").load("inc/show_more.php");
    //WHEN THE 'LOAD MORE' BUTTON IS PRESSED
    $("#loadmore").live("click", function(){
        var next = page+=1;

        $.get("inc/show_more.php.php?page="+next, function(data){
            if(next==pages){
                $("#loadmore").remove(); //IF ALL PAGES ARE LOADED, THE BUTTON WILL BE REMOVED
            }
            $("#list_pp").append(data); //LOADS THE NEW PAGE OF CONTENT UNDER THE REST
        });
    });
});     
</script>

<div id="list_pp"></div>
<input id="loadmore" type="button" value="Загрузить еще..."> 
<input id="pages" type="hidden" value="<?=$total_pages?>">


и файл show_more.php
$pagenum = (isset($_GET["page"])) ? (int)$_GET["page"] : 1;

$offset = ($pagenum - 1) * $site['per_page']; 

list($total_nums) = mysqli_fetch_row($mysqli->query("SELECT COUNT(`id`) FROM `dmtvs`"));

$total_pages = ceil($total_nums/$site['per_page']); //NUMBER OF PAGES

if ($pagenum >= 1 && $pagenum <= $total_pages)
{
    $sql = $mysqli->query("SELECT * FROM `dmtvs` ORDER BY `id` DESC LIMIT ".$offset.",".$site['per_page']);

   while($res = mysqli_fetch_assoc($sql)) 
    { 
    ?>
    <div class="block" align="center">
         <div class="title">
          <table width="100%">
         <td width="33%"><?=getout($res['title'])?> title</td>
         <td width="33%">рэйтинг</td>
         <td width="33%">кнопки соц сетей</td>
        </table>
       </div>
         <!--<img src="<?=$res['img']?>">-->
      </div>
    <?php
  }
} else {
    
   echo "Запись больше нет!";
}


использую данный пример https://github.com/devote/HTML5-History-API

в файл index.php добавил
"/inc/show_more.php" => 1,
Ответить с цитированием
  #2 (permalink)  
Старый 23.04.2013, 00:58
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

ничего не понятно по вашим отрывкам кода
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #3 (permalink)  
Старый 23.04.2013, 12:23
Аспирант
Отправить личное сообщение для okapo Посмотреть профиль Найти все сообщения от okapo
 
Регистрация: 15.04.2011
Сообщений: 56

вот скриншоты смотрите выше, там вместо записи из БД выходит сам сайт, не могу понять что не то
Ответить с цитированием
  #4 (permalink)  
Старый 23.04.2013, 12:34
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от okapo
вот скриншоты смотрите выше, там вместо записи из БД выходит сам сайт, не могу понять что не то
мне ваши скриншоты код не покажут. просто не отдавайте в аякс всю страницу, а только нужную часть. Проверяйте на сервере чем сделан запрос. И если запрос сделан аяксом, отдавайте нужное.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #5 (permalink)  
Старый 23.04.2013, 20:31
Аспирант
Отправить личное сообщение для okapo Посмотреть профиль Найти все сообщения от okapo
 
Регистрация: 15.04.2011
Сообщений: 56

Сообщение от devote Посмотреть сообщение
мне ваши скриншоты код не покажут. просто не отдавайте в аякс всю страницу, а только нужную часть. Проверяйте на сервере чем сделан запрос. И если запрос сделан аяксом, отдавайте нужное.

начал сделать через json, проблема исчезла, но теперь другой геморой
, как не крутил, та же финя

при открытие страницы автоматом вызывается функция
$(function(){ show_more (1,0);});


function show_more (page, catSET)
{
    $.ajax({
        type: "post",
        url: "<?=_LINK_PATH;?>inc/more_status.php?t="+(Math.random()),
        data: { pg: page, cat: catSET,time: (Math.random())},
        dataType: "json",
	cache: false,
        success: function(msg)
        { 
            $("#note").ajaxComplete(function(event, request, settings)
            { 
                if (msg.status) {
                    $("#list_pp").append(msg.data);
                    
				$("#but_load").attr("onClick","show_more("+msg.pg+","+catSET+");");
				}
				else
				{
				    $("#list_pp").append(msg.data);
					$("#but_load").animate({backgroundColor:"#fbc7c7"},"fast").animate({opacity:"hide"},"slow");
				}
               $("#note").html(msg.html); 
            });
        }
    });
    return false;
}

<div id="list_pp"></div>
<div id="note"></div>
<input id="but_load" onClick="show_more(2,0);" type="button" value="Загрузить еще...">


и так при переходе на данной странице, из базы сразу же выходят первые 1-3 записи,
если нажимаю на кнопочку загрузить еще, старые остаются, и ниже добавляются эти 3 записи старые + 3 новые, и так далее всегда выходит старые с первой записи плюс новые, пробовал отключить кэш, ничео не меняется, гуглил пол дня ничего не нащел, пробовал через math.random, тоже ничего, выручайте пожалуйста
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
history рассширение для браузеров не поддерживающих pushState, replaceState devote Ваши сайты и скрипты 187 13.08.2015 10:40
Проблемы с пониманием History API Flaker AJAX и COMET 5 06.02.2013 15:28
History API. Помогите решить проблему InviS Events/DOM/Window 2 16.10.2011 14:34
history api + ajax nemoon Общие вопросы Javascript 5 25.06.2011 02:39
Фиксирование событий History API Bebarr Swallow Events/DOM/Window 1 20.06.2011 01:49