У меня есть приложение, в котором различные страницы с разбивкой по страницам отображаются в «окнах» на странице и обновляются через вызовы AJAX на сервер. Вот как я это сделал:
Настройки маршрута для визуализации всей страницы, что-то вроде этого:
Route::get('/marketplace', function ($arguments) {
....
});
Настройки маршрута, который будет возвращать текущую страницу списка. Например, это может быть что-то вроде этого:
Route::get('/marketplace/updateFiler', function ($arguments) {
....
});
В коде Javascript для страницы, вам нужно изменить ссылки разбивки на страницы, так что, вместо загрузки новой страницы с URL для ссылки, это делает запрос AJAX ко второму маршруту. Javascript может выглядеть примерно так:
$('ul.pagination a').on('click', function (event) {
// stop the default action
event.stopPropagation();
event.preventDefault();
// get the URL from the link
var url = $(event.currentTarget).attr('href');
// get the page number from the URL
var page = getURLParameterByName(url, 'page');
$.get('marketplace/updateFiler', { page: page }, function (data){
// do something with the response from the server
});
});
getURLParameterByName
функция просто помощник, который извлекает именованный параметр из URL:
var getURLParameterByName = function (url, name, defaultValue) {
// is defaultValue undefined? if so, set it to false
//
if (typeof defaultValue === "undefined") {
defaultValue = false;
}
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(url);
return results === null ?
defaultValue :
decodeURIComponent(results[1].replace(/\+/g, " "));
};
Я приспособил этот код от ответа, я нашел здесь на Stack Переполнение: https://stackoverflow.com/a/901144/2008384.
Когда вы посещаете 'whatever.com/marketplace/updateFiler', ссылки на страницы на этой странице будут' whatever.com/marketplace/updateFiler? Page = 2' - почему вы хотите, чтобы он перенаправлялся на другой маршрут? Если вам нужен только простой маршрут, вы можете начать с простого маршрута. например. если вы хотите, чтобы ссылки на страницы находились на странице 'whatever.com/marketplace? page = 2', тогда сделайте *, что * ваш маршрут для этой страницы. – Kryten
Несомненно, существует асинхронный вызов ajax для updateFilter. В этом проблема – user1974467
Мне нужно применить фильтры к результатам DB/Eloquent, а не отображать их в HTML и генерировать разбиение на страницы, чтобы я мог заменить исходный контент на отфильтрованный. – user1974467