如何在 codeigniter 中验证表单

how to validate form in codeigniter

我有一个基于 codeigniter 框架的网站。我的索引页面上有一个表格和一些来自我的数据库的航班价格。

这是我的表格:

<?php echo validation_errors(); ?>

<form action="<?php echo base_url() ?>detail/travel" method="post">

<input type="text" name="departure">
<input type="text" name="destination">
<input type="text" name="name">
<input type="text" name="cell">

</form>

所以我的问题是当用户没有填写整个表单并提交按钮时,它进入了我在我的控制器中创建的 "travel" 的功能(详细信息)并且由于错误而显示 0 个结果.我希望该用户在我的索引页面上保留所有详细信息,直到他正确填写表单并在我的索引页面上显示错误,如果他错过了我表单的任何字段。

这是我在控制器中的函数 "travel"(详细信息):

function search_travel(){
                if($_POST){

                    $config = array(
                    array(
                    'field'=>'departure',
                    'label'=>'departure',
                    'rules'=>'trim|required|alpha'
                    ),
                    array(
                    'field'=>'destination',
                    'label'=>'destination',
                    'rules'=>'trim|required|alpha'
                    ),
                    array(
                    'field'=>'name',
                    'label'=>'name',
                    'rules'=>'trim|required|alpha'
                    ),
                    array(
                    'field'=>'cell',
                    'label'=>'cell no',
                    'rules'=>'trim|required|regex_match[/^[0-13]+$/]'
                    )
                );
            $this->load->library('form_validation');
            $this->load->helper(array('form', 'url'));
            $this->form_validation->set_rules($config);
            if($this->form_validation->run() == FALSE){
                $data['errors']= validation_errors();
                }   
            else{       
            $destination= $this->input->post('destination');
            $this->email->send();
            $data['var']= $this->Travel->search_travel($destination);
            $this->load->view('details',$data)
              }
            }
         } 

我的索引函数是:

function index(){
        $data['fares']= $this->Travel->all_fares();
        $this->load->view('index', $data);
    }

您需要重定向到旧页面并在查看页面中打印错误

<?php echo form_error('departure'); ?> 

(在控制器中的每个输入字段和下方的视图中打印此内容)

if ($this->form_validation->run() == FALSE) {

         redirect('method name that loads form');
      }