2016-03-20 5 views
0

学生の入学ステータスに関するエラーメッセージは、旧生徒、新入生、譲受人のいずれかに問題があります。生徒のステータスを入力したり追加したりすると、それは1対1の関係であるため重複して入力するとエラーになるので、フォームの検証などのメッセージを設定する必要がありますが、重複した入力にはエラーが発生します。ここcodeigniterを使用して既に入力したデータを追加する際の警告メッセージ

は絵です:ここ enter image description here

は私のコントローラです:

function enrollstudent(){ 
 
     if($this->session->userdata('logged_in')) 
 
     { 
 
      
 
    $this->output->set_header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); 
 
    $this->output->set_header('Cache-Control: no-cache, no-store, must-revalidate, max-age=0'); 
 
    $this->output->set_header('Cache-Control: post-check=0, pre-check=0', FALSE); 
 
    $this->output->set_header('Pragma: no-cache'); 
 
       $session_data = $this->session->userdata('logged_in'); 
 
      
 
      $data['Username'] = $session_data['Username']; 
 
      $this->load->view('StudentEnroll', $data); 
 
     } else{ 
 
      redirect('welcome', 'refresh'); 
 
     } 
 
     if((!isset($session_data) || $session_data !=TRUE)) { 
 
      
 
      redirect('welcome', 'refresh'); 
 
     } 
 
    } 
 
    
 

 
    function addstatusofenroll($id){ 
 
     
 
      $this->form_validation->set_rules('status', 'Status', 'callback_status_check'); 
 
if($this->form_validation->run() == FALSE) 
 
     { 
 
     $this->enrollstudent();} 
 
     else{ 
 
       $data= array(
 
      'Id'=> $id , 
 
      'Statusofenrollment' => $this->input->post('status') 
 
       
 
      
 
      
 
      ); 
 
       $this->db->insert('statusofenrollment',$data); 
 
      
 
      $this->session->set_flashdata('category_success', 'Successfully Add!'); 
 
       $this->load->view('StudentEnroll'); 
 
         } 
 
           
 
          
 
    } 
 
    
 
    
 

 
    public function callback_status_check($roll) 
 
    { 
 
     $this->db->where('Id', $roll); 
 
    $query = $this->db->get('statusofenrollment'); 
 
    $count_row = $query->num_rows(); 
 
    if ($count_row > 0) 
 
    { 
 
     echo 'Data Already exist'; 
 
     $this->session->set_flashdata('warning', 'Data already exists'); 
 

 
       return FALSE; 
 
    } 
 
    else 
 
    { 
 
     return TRUE; 
 
    } 
 

 
     
 
    }

+0

あなたのコールバックメソッドは 'status_check'でなければなりません。 [docs](https://codeigniter.com/userguide3/libraries/form_validation.html#callbacks-your-own-validation-methods)を確認してください。 – Tpojka

+0

まだ同じですが、重複申し訳ありません。 –

+0

なぜそれが真を返すのでしょうか? –

答えて

0

状態が原因で1対1の関係であってはならないようですね同じステータスの学生が多いことがあります。ステータスフィールドがユニークである必要がないようにデータベースを変更する場合は、各生徒を自由に挿入して更新できる必要があります。

関連する問題