Запоминание результатов при переходе на страницу поиска в Laravel - PullRequest
0 голосов
/ 01 января 2019

Я создал страницу поиска, используя Laravel, в верхней части которой есть фильтры «текст для поиска».Когда мышь убирается из фильтра, JavaScript страницы запускает Ajax-вызов, а затем возвращает результаты.

Поскольку я также включил разбиение на страницы (с Ajax), когда я нажимаю на страницу 2 (ссылка выглядит следующим образом: http://project.test/customers?page=2), фильтры вверху сохраняют любой ранее введенный текст, а поискрезультаты удерживаются , и это как раз то, что мне нужно!

Теперь проблема:

У моей базы данных есть две основные таблицы.

  1. Клиенты

  2. Покупки

Отношения: У клиента может быть много покупок Любая данная покупка, хотя принадлежитодин клиент

Я создал страницу поиска, чтобы пользователь мог искать клиентов, которые соответствуют заданным критериям поиска (например, те, которые относятся к определенному городу или стране, например).

В приведенной ниже таблице поисковых фильтров, которые показывают все соответствующие записи о клиентах, у меня есть столбец с кнопкой покупок, которая затем перенаправляет пользователя на страницу покупок данного конкретного клиента (здесь кнопка покупок переходит по ссылке в формеproject.test/ Customers / {{id}}

{id} проходит маршрут, который затем загружает новую страницу, которая показывает все покупки этого конкретного клиента.

Теперь у меня есть кнопка «вернуться» на этой странице покупки, которая идет по следующей ссылке:

project.test / Customers

Затем загружается оригинальный поискстраница (но загружает его заново).

ЭТО ПРОБЛЕМА !!!

Поскольку страница загружается заново (по ссылке: project.test / Customers)

Поискфильтры очищаются, и на странице вместо этого отображаются ВСЕ клиенты.Таким образом, пользователь должен снова ввести все критерии поиска, что раздражает пользователя, так как ему / ей часто приходится изменять пакет записей о закупках.для заданного набора клиентов, которые соответствуют заданному набору критериев поиска, и, скорее всего, им не придется повторно вводить одни и те же критерии снова и снова при переходе на страницу покупок клиента, а затем обратно кглавная страница поиска.

Учитывая эту проблему, у меня возникает вопрос, возможно ли концептуально с Laravel перейти на другую страницу со страницы поиска, а затем, используя какой-либо метод, вернуться к исходномустраница поиска, для поисковых фильтров и результатов, показанных ранее, все еще там?- Это было бы очень полезно иметь!

Я видел, как это делалось на других сайтах, возможно, с использованием других веб-технологий, но я просто не уверен, как начать / с чего начать делать это сLaravel / PHP?

Я ценю любую помощь, заранее спасибо!

1 Ответ

0 голосов
/ 01 января 2019

Сохраните критерии поиска в пользовательском сеансе , передавая их обратно на страницу поиска при переходе назад.

Скажем, у вас есть контроллер с функцией для маршрута поиска:

public function search (Request $request)
{
    // store the search criteria 
    session(['search_criteria' => $request->input()]);

    // return the results
}

Затем в другой функции контроллера добавьте исходные параметры к ответу:

public function someRouteMethod (Request $request)
{
    return redirect()->with('search_criteria', session('search_criteria'))->to('/search');
}

Затем на странице поиска снова заполните форму данными $search_criteria:

<input value="{{ !empty($search_criteria) ? $search_criteria['foo'] : '' }}" name="foo">
...