Запоминание результатов при переходе на страницу поиска в Laravel

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

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

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

База данных у меня есть две основные таблицы.

  1. Клиенты

  2. Покупки

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

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

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

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

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

project.test / клиентов

Затем он загружает исходную страницу поиска (но загружает ее заново).

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

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

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

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

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

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

1

Решение

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

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

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">
1

Другие решения

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

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

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

База данных у меня есть две основные таблицы.

  1. Клиенты

  2. Покупки

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

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

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

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

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

project.test / клиентов

Затем он загружает исходную страницу поиска (но загружает ее заново).

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

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

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

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

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

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

1

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

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

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">

active «data-shortcut =» A
самый старый «data-shortcut =» O
голосует «data-shortcut =» V
1
По вопросам рекламы [email protected]