我有一个表单,发布搜索查询到我的'search'控制器:
<div id="search_box">
<?php echo form_open('search'); ?>
<?php echo form_input('searchvalue', 'search...'); ?>
<?php echo form_submit('submit', 'Search!'); ?>
<?php echo form_close(); ?>
</div>
在我的搜索控制器我有以下代码:
public function index()
{
$page = 'search';
$category = 'search';
if($this->input->post('searchvalue')) {
redirect('search/query');
};
......
}
我的问题是它不会做重定向。我已经自动加载了表单帮助器。我怎样才能解开这个谜团呢?这是蝙蝠侠的案子吗?
在Codeigniter中,如果您从Input类请求POST变量,它将返回值,如果值为空(Personal Experience)或未找到,则返回FALSE。
所以也许可以把一个隐藏字段与一个Dummy值,只是检查每个提交。然后可以执行验证和重定向。无论是否提供搜索查询,这都可以工作。
和if
之后的;
是无效的PHP。
<div id="search_box">
<?php echo form_open('search'); ?>
<?php echo form_hidden('mysearchform', 'true'); ?>
<?php echo form_input('searchvalue', 'search...'); ?>
<?php echo form_submit('submit', 'Search!'); ?>
<?php echo form_close(); ?>
</div>
public function index() {
$page = 'search';
$category = 'search';
if($this->input->post('mysearchform') != FALSE) {
// Remember to Validate your Query
redirect('search/query');
}
}
希望我理解对了