我有一个表单会将搜索查询发布到我的“搜索”控制器:
<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');
};
......
}
我的问题是它不会进行重定向。我有自动加载的表单助手。我该怎么做才能解开这个谜团。这是蝙蝠侠的情况吗?
答案 0 :(得分:1)
在Codeigniter中,如果您要求输入类中的POST变量,它将返回值,如果值为空(个人体验)或未找到,则返回FALSE。
所以也许改为放入一个带有虚拟值的隐藏字段,并在每次提交时检查一下。然后,您可以执行验证和重定向。如果提供或不提供搜索查询,则此功能将起作用。
;
之后的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');
}
}
希望我理解正确。