我的网站上有一个搜索表单,它看起来像这样:
<form action="/search/results">
<input type="text" name="keyword">
<button type="submit"> // etc...
</form>
它让我进入mysite.com/search/results/
页面,我处理帖子参数。
当然,我可以使用 GET 方法,然后它将是
/search/results?keyword="some_keyword",
但是可以使结果页面网址看起来像
mysite.com/search/results/keyword
答案 0 :(得分:4)
我会使用jQuery
$('#myform').submit(function(){
$(this).attr('action', $(this).attr('action') + "/" + $(this).find(input[name="keyword"]).val());
});
另一种可能性是在你的控制器中创建一个代理方法,如果你想在网址中包含你的所有帖子值,这很有用:
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);
}
在这种情况下,我会在post数据中使用数组来简化代码:
<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);