2017-01-19 3 views
0

私はcodeigniterフレームワークに基づいたWebサイトを持っています。私は私のインデックスページ上のフォームと私のデータベースを経由しているいくつかの価格のフライトを持っています。ここ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> 

ので、私の問題は、ユーザーが全体のフォームを記入し、ボタンを提出しなかったときで、それは私が私のコントローラ(詳細に作られた「旅行」の機能に入ります)、エラーのため0の結果を表示します。私は彼のフォームのフィールドを見落とした場合は、フォームを正しく記入してインデックスページにエラーを表示するまで、そのユーザーはすべての詳細と私のインデックスページに残ります。

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

答えて

0

表示ページのエラー

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

(これは、入力フィールドごとに表示され、コントローラでは下に表示されます)

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

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

フォームはインデックスファイルにありますので、インデックスページにエラーが残るようにするには、リダイレクト(base_url())を使用します。 –

+0

エラーが表示されるかどうかを確認する – Learner

+0

session-> flashdata( 'errors');?>を表示しているときにエラーが表示されます。各入力フィールドの下に表示されます。私は何をすべきか??? –

関連する問題