Возврат объекта zend paginator в ajax-запросе, получение неправильного URL

#jquery #ajax #zend-framework #zend-paginator

#jquery #ajax #zend-framework #zend-paginator

Вопрос:

Здесь я использую Zend Paginator, в ajax-запросе я извлекаю объекты на основе результатов поиска и визуализирую HTML-код и передаю его вместе с визуализированным представлением Zend Paginator.

Проблема в том, что возвращающий paginator не учитывает новый URL. например, если бы я должен был сделать это без ajax, я бы прочитал URL моей страницы:

www.mysite.com/?search=somethingamp;page=2

Однако с помощью запроса from и ajax это не работает таким образом, переменная search не добавляется к URL в ссылках paginator. Пожалуйста, помогите.

Комментарии:

1. Можем ли мы увидеть код, над которым вы работаете. У Zend Paginator нет проблем с отображением URL страницы.

Ответ №1:

Я предполагаю, что у вас где-то на вашем сайте есть ссылки на разбивку на страницы, которые указывают на разные страницы, созданные в вашем файле pagination.phtml.

OnClick вам нужно получить этот атрибут href и загрузить содержимое таким образом:

 function getContents() {
    var url = window.location.protocol   "//"   
              window.location.host   $(this).attr('href');

    var jqxhr = $.post(url, {
        "format" : "json"
    }, function(data) {
        displayContents(data);
    }, 'html');
    return false;
} 

$(document).ready(function() {
    $("#paginator a").each(function() {
        $(this).click(getContents);
    });
});
  

Таким образом, вы получаете свой классический URL

 www.mysite.com/?search=somethingamp;page=2
  

возможно, вам нужно изменить поле url. Просто предупредите поле url и посмотрите, что нужно изменить.

Вот руководство по этому вопросу (без поиска): Zend Framework 1.9 руководство 14: ajax-запросы, часть 1

Комментарии:

1. На самом деле мой вопрос был не в отношении ajax paginator, а в отношении HTML, созданного объектом Zend Paginator. Похоже, что zend paginator использует текущий URL-адрес в качестве основы для построения ссылок. Однако в ajax-запросе текущий URL не обязательно может быть фактическим URL, который необходимо создать здесь.

2. Я не уверен, в чем ваша проблема. В вашем вопросе вы говорите, что часть ajax не работает. Работает ли разбивка на страницы без ajax до сих пор?

Ответ №2:

Не видя вашего кода, я не могу быть уверен, но похоже, что скрипты просмотра вашего Paginator Controls (т. Е. .phtml файлы, которые отображают ваши следующие, предыдущие и т.д. ссылки) используют $this->url() , Но вы не настроили его для обнаружения и добавления параметра поиска в конец ссылок.

Если ваши сценарии просмотра элементов управления специфичны для этого разбиения на страницы, попробуйте вручную добавить «?search =something» в параметр href вашего <a> тега. Это должно заставить его включить их в выходные данные.

Было бы здорово, если бы вы могли предоставить нам код из вашего контроллера и View, показывающий, как вы внедряете Paginator и визуализируете страницы. Или живая демонстрация всегда хороша : D