我创建了一个我希望在提交时转发的搜索表单。
它的工作方式是用户输入他们想要搜索的字词/关键字,然后表单会将其转发到 / search / $ keyword
我的研究让我得出的结论是,需要将表单发布到控制器,然后从那里进行转发。但我已经尝试了很多次,无法让它前进。
以下是表格:
<?php echo form_open('search'); ?>
<input id="search_text" name="searchquery" type="text" value="enter your search here..." onfocus="if(this.value == 'enter your search here...') this.value='';" onblur="if(this.value == '') this.value='enter your search here...';" maxlength="120" >
<?php echo form_close();?>
控制器:
if($this->input->post('searchquery')){
redirect('search', $this->input->post('searchquery'));
}
答案 0 :(得分:2)
更改此行:
redirect('search', $this->input->post('searchquery'));
为:
redirect('search/' . $this->input->post('searchquery'));
在重定向调用中,第二个参数是重定向的“方法”,这就是重定向无效的原因。你想要的是这样的:
redirect('search/my+search+term');
这就是我们进行字符串连接的原因,而不是将搜索词传递给第二个参数。
答案 1 :(得分:1)
试试这个。
if($this->input->post('searchquery')){
redirect('search/'.$this->input->post('searchquery'));
}
您错误地使用了重定向方法。这是文档的摘录。
可选的第二个参数允许您在之间进行选择 “location”方法(默认)或“refresh”方法。位置是 更快,但在Windows服务器上它有时可能是一个问题