PHP编码器控制器在post后不执行操作



我有一个表单,发布搜索查询到我的'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');
}
}

希望我理解对了

最新更新