php codeigniter контроллер не выполняет действия после публикации - PullRequest
0 голосов
/ 02 ноября 2011

У меня есть форма, которая отправляет поисковый запрос на мой контроллер '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');
         };


......

}

Моя проблема в том, что он не будет выполнять перенаправление. У меня есть помощник формы автозагрузки. Что я могу сделать, чтобы разгадать эту загадку. Это случай для бэтмена?

1 Ответ

1 голос
/ 02 ноября 2011

В Codeigniter, если вы запрашиваете переменную POST из класса Input, он вернет значение или FALSE, если значение пустое (Personal Experience) или не найдено.

Так что, возможно, вместо этого вставьте скрытое поле со значением 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');
}

}

Надеюсь, я правильно понял.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...