У меня есть поисковая форма на моем сайте, и она выглядит так:
<form action="/search/results"> <input type="text" name="keyword"> <button type="submit"> // etc... </form>
Это приводит меня к mysite.com/search/results/
странице, где я обрабатываю параметры сообщений. Конечно, я могу использовать метод GET , и тогда это будет
/search/results?keyword="some_keyword",
но возможно ли сделать URL-адрес страницы с результатами
mysite.com/search/results/keyword
Я бы использовал jQuery
$('#myform').submit(function(){ $(this).attr('action', $(this).attr('action') + "/" + $(this).find(input[name="keyword"]).val()); });
Другая возможность – сделать прокси-метод в вашем контроллере, это полезно, если вы хотите, чтобы все ваши значения сообщений в URL-адресе:
public function post_proxy() { $seg1 = $this->input->post('keyword'); $seg2 = $this->input->post('keyword2'); $seg3 = $this->input->post('keyword3'); redirect('my_method/'.$seg1.'/'.$seg2.'/'.seg3); }
В этом случае я бы использовал массивы в пост-данных для упрощения кода:
<input type="text" name="kw[1]"> <input type="text" name="kw[2]"> <input type="text" name="kw[3]"> $segment_array = $this->input->post('kw'); $segments = implode("/", $segment_array); redirect('my_method'.$segments);