Dima_So
@Dima_So
Experientia est optima magistra

Ajax подгружает всю страницу, вместо конкретного элемента?

На странице есть кнопка "Показать еще". При клике на неё должны выводится товары со следующей страницы пагинации.
В результате на страницу подгружается весь контент страницы.

Код запроса:

$(document).on('click', '[data-show-more]', function(){
    var btn = $(this);
    var page = btn.attr('data-next-page');
    var id = btn.attr('data-show-more');
    var bx_ajax_id = btn.attr('data-ajax-id');
    var block_id = "#comp_"+bx_ajax_id;

    var data = {
        bxajaxid:bx_ajax_id,
        infinity:1
    };
    data['PAGEN_'+id] = page;

    $.ajax({
            type: "POST",
            url: window.location.href,
            data: data,
            timeout: 3000,
            success: function(data) {
                    $("#btn_"+bx_ajax_id).remove();
            $('[data-products]').append(data);
            $('body').animate({ "scrollTop" : $('[data-index='+(page-1)+']').offset().top +280 }, 'slow');

            }
    });


Код кнопки:
<div class="ajax-nav" id="btn_<?=$bxajaxid?>">
	    <a data-ajax-id="<?=$bxajaxid?>" href="javascript:void(0)" data-show-more="<?=$arResult["NAV_RESULT"]->NavNum?>" data-next-page="<?=($arResult["NAV_RESULT"]->NavPageNomer + 1)?>" data-max-page="<?=$arResult["NAV_RESULT"]->nEndPage?>">Показать еще</a>
	</div>
  • Вопрос задан
  • 1431 просмотр
Пригласить эксперта
Ответы на вопрос 2
А вы проверяете на стороне сервера тип запроса (ajax или обычный запрос)? Если приходит ajax запрос, то делаете сброс буфера перед выводом необходимого контента.
Ответ написан
KorniloFF
@KorniloFF
Работаю по font-end / JS
Нужно в коде обработчика проверять, что идет именно AJAX:

if(isset($_POST['infinity'])) {
 echo ... 
// Run AJAX
} else { echo ...};
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы