2016-06-23 2 views
1

У меня есть обычная форма POST для моей функции поиска. В настоящее время у меня есть следующий маршрут:Запрос поисковой формы в URL

Route :: post ('/ search', 'PostController @ search');

Я получаю данные формы JQuery/AJAX:

$('form').on('submit', function(event) 
{ 
    event.preventDefault(); 

    var form = $(this); 

    $.ajax({ 
     url: '/search', 
     type: 'post', 
     data: form.serialize(), 
     dataType: 'json', 
     success: function(data) 
     { 
      // 
     }, 
     error: function(data) 
     { 
      // 
     } 
    }); 
}); 

Однако, когда на странице результатов показано, это только показывает /search в URL без запроса пользователя, например:

http://www.website.com/search 

Что я хочу сделать что-то вроде /search/{user query here}, как:

http://www.website.com/search/bob 

По существу, я хочу показать запрос пользователя в URL-адресе.

Как я могу это сделать и как это сделать безопасно?

+0

попробуйте использовать редирект как 'Перенаправление :: маршрут возврата ('поиск', массив ('пользователь' => {some query here})); ' – claudios

+0

Возможно, вы захотите запустить GET-запрос, а не почтовый запрос, чтобы достичь этого. Я не думаю, что это изменит текущий URL. например, 'http: //www.website.com/search? q = bob' – James

+0

@james ему следует использовать маршрут с подстановочным знаком –

ответ

0

У вас есть два варианта.

  1. Используйте обычную форму и дайте действие как «пользователь/{имя_пользователя}» при отправке без использования jQuery. Для этого добавьте такой маршрут.

    Маршрут :: get ('/ search/{имя_пользователя}', 'PostController @ show');

  2. Когда Аякса успех перенаправить его на страницу "пользователь/{user_name}"

Смежные вопросы