Laravel 4.2 Форма SUbmit Friendly URL

У меня есть форма в Laravel 4.2

{{Form::open(array('url'=>'search', 'method'=>'get', 'class'=>'navbar-form navbar-left' ,'role'=>'search'))}}
<div class="form-group ">
<input list="browsers" name="topic" class="form-control " placeholder="Search">
<datalist id="browsers">
<option value="Internet Explorer">
<option value="Firefox">
<option value="Chrome">
<option value="Opera">
<option value="Safari">
</datalist>
</div>
<button class="gray-button"><span>Search</span></button>
{{Form::close()}}

Когда я нажимаю кнопку «Отправить», я получаю URL

http://localhost/car/public/search?topic=dfg

Но я хочу, чтобы URL-адрес, как

http://localhost/car/public/search/dfg

Нужно ли менять код в форме?

Или в роутере.

Кто-нибудь может мне помочь?

Заранее спасибо за помощь.

0

Решение

Вам нужен JavaScript, если вы не хотите выполнять перенаправление на сервер, как указал @lukasgeiter в комментариях. Вам также необходимо настроить маршрут для этого конкретного поискового URL. Маршрут должен выглядеть примерно так с использованием закрытия маршрута:

Route::get('search/{topic}', function ($topic)
{
// code goes here
});

Для клиентской стороны вам нужно остановить отправку формы и перейти на созданный вручную URL при отправке формы. Таким образом, вы могли бы иметь что-то вроде этого:

{{Form::open(array('url'=>'search', 'method'=>'get', 'id' => 'searchForm', 'class'=>'navbar-form navbar-left' ,'role'=>'search'))}}
<div class="form-group ">
<input list="browsers" name="topic" class="form-control " placeholder="Search">
<datalist id="browsers">
<option value="Internet Explorer">
<option value="Firefox">
<option value="Chrome">
<option value="Opera">
<option value="Safari">
</datalist>
</div>
<button class="gray-button"><span>Search</span></button>
{{Form::close()}}

<script>
document.getElementById('searchForm').onsubmit = function (event)
{
// Prevent the form from submitting
event.preventDefault();

// Build the url using the form action and the topic value
var topic = document.querySelectorAll('input[name="topic"]')[0];
window.location.href = this.action + '/' + encodeURIComponent(topic.value);
};
</script>
2

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

Других решений пока нет …

По вопросам рекламы [email protected]