Проект на laravel. У меня есть поисковый ввод с AJAX в интернет-магазине, который отправляет запросы после ввода любого символа. Мне нужно сохранить 5 последних запросов пользователя полный. Запросы. Я пробовал использовать request-> input (), но это не работает, и у меня есть этот результат. моя функция.
public function saveSearchRequest(array $search_elements,Request $request)
{
if ($request->input('name') == $search_elements['name'])
{
$_SESSION['search_storage'][] = $search_elements['name'];
return array_unique($_SESSION['search_storage']);
} else {
return array_unique($_SESSION['search_storage']);
}
}






ну, если вы хотите сохранить только последние пять входов в массиве, возможно, вы можете использовать php's array_splice, вот документы
который изменит код, например,
public function saveSearchRequest(array $search_elements,Request $request){
if ($request->input('name') == $search_elements['name']){
$_SESSION['search_storage'][] = $search_elements['name'];
// this will get you only last 5 elements of array
$_SESSION['search_storage'][] = array_splice($_SESSION['search_storage'], -5, sizeof($_SESSION['search_storage']));
return array_unique($_SESSION['search_storage']);
}
else{
return array_unique($_SESSION['search_storage']);
}
}
надеюсь, я тоже на той же линии, что и вы, и это полезно.
Вы можете получить доступ к массиву со всеми элементами, отправленными во время запроса, вызвав
$request->all()
Чтобы получить единичный элемент ввода, используйте $request->input('key') и замените строку 'key' своим именем ввода, например query, q
Возможно, вам следует отправить еще один ajax, когда пользователь нажмет кнопку отправки или нажмите `` Enter '' и сохраните ввод, чтобы вы знали, что поисковое слово завершено