如何在codeigniter中制作动态表单动作地址?

时间:2012-08-22 09:27:45

标签: php codeigniter

我的网站上有一个搜索表单,它看起来像这样:

<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

1 个答案:

答案 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);