Доброго времени суток. Сделал Фронтенд Ajax сортировку и фильтрацию и теперь встал вопрос о пагинации, с которой собственно возникает проблема. Если я добавляю пагинацию внутрь формы, то все работает отлично, но когда выношу ее, страница обновляется, но ничего не работает.
Вот примерный вид страницы с фильтром:
{{ form_ajax('onFilterKredits', { update: { 'kredits': '#partialKredits', 'kredits_paginate': 'partialPaginate' }, id: 'form_filter' }) }}
<div id="KreditsFilter">
<!-- Куча фильтров -->
</div>
{{ form_close() }}
<div id="partialKredits">
{% partial 'kredits' %}
</div>
<div id="partialPaginate">
{% partial 'kredits_paginate' %}
<!-- Код partial:
<label>Страница</label>
<select name="Filter[page]">
{% for i in 1..pages %}
{% if i == page %}
<option value="{{page}}" selected>{{ page }}</option>
{% else %}
<option value="{{i}}">{{ i }}</option>
{% endif %}
{% endfor %}
</select>-->
</div>
PHP для этой страницы выглядит так:
use Bankeer\Produkty\Models\Kredit;
use Bankeer\Produkty\Models\Bank;
function onStart() {
$this->prepareVars();
$this->prepareFilter();
}
function onFilterKredits() { $this->prepareVars(); }
function prepareVars() {
$options = post('Filter', []);
$this['kredits'] = Kredit::listFrontEnd($options);
$this['pages'] = $this['kredits']->lastPage();
$this['page'] = $this['kredits']->currentPage();
}
function prepareFilter() {
$kredits = Kredit::all();
foreach($kredits as $kredit){}
}
В модель добавлено:
$lastPage = $query->paginate($perPage, $page)->lastPage();
if($lastPage < $page){
$page = 1;
}
Ну и js:
$('#KreditsFilter').on('change', 'input, select', function(){
var $form = $('#form_filter');
$form.request();
});
$('#partialPaginate').on('change', 'select', function(){
var $form = $('#form_filter');
$form.request();
});
Подскажите, пожалуйста, как заставить пагинацию работать?