php codeigniter控制器在发布后不执行操作

时间:2011-11-02 09:43:31

标签: php forms codeigniter redirect

我有一个表单会将搜索查询发布到我的“搜索”控制器:

<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');
         };


......

}

我的问题是它不会进行重定向。我有自动加载的表单助手。我该怎么做才能解开这个谜团。这是蝙蝠侠的情况吗?

1 个答案:

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

}

希望我理解正确。