2016-04-26 71 views
1

我正在使用CodeIgniter 3,我试图验证我的两个组合框。验证CodeIgniter中的组合框

我的代码是这样的:

观点:

<tr> 
    <td > 
     <?php $extra=' class="selectCombo"'; 
      $busVal=array(); 
      $busVal[]="Select"; 
      foreach($values as $val){ 
       $busVal[$val->bus_id]=$val->bus_no; 
      } 
     echo form_dropdown('bus_id', $busVal,set_value('bus_id'),$extra); 
     ?> 
     </td> 
     <td><?php echo form_error('bus_id');?></td> 
</tr> 
<tr> 
    <td > 
     <?php 
      $extra=' class="selectCombo"'; 
      $route=array(); 
      $route[]="Select"; 
      foreach($values as $val){ 
       $route[$val->route_id]=$val->route_name; 
      } 
      echo form_dropdown('route_id',$route,set_value('route_id'),$extra); 
      ?> 
      </td> 
      <td><?php echo form_error('route_id');?></td> 
</tr> 

我的控制器代码是这样的:两个领域

public function add() 
{ 
$this->form_validation->set_rules('bus_id', 'Bus', 'trim|required|callback_check_Bus'); 
$this->form_validation->set_rules('route_id', 'Route Name', 'trim|required|callback_validate_route'); 
if ($this->form_validation->run() == FALSE) { 
    echo 'Error'; 
}else{ 
    } 
} 
public function check_Bus($val){ 
     if($val ==0) 
     { 
      $this->form_validation->set_message('select_validate', 'Please Select Bus.'); 
      return false; 
     } 
     else 
     { 
      return true; 
     } 
    } 

    public function validate_route($val){ 
     if($val ==0) 
     { 
      $this->form_validation->set_message('select_validate', 'Please Select Route.'); 
      return false; 
     } 
     else 
     { 
      return true; 
     } 
    } 

我得到以下信息:

无法访问对应的错误消息荷兰国际集团到您的字段名公交车。(check_Bus)
无法访问与您的字段名 路由名称的错误消息。(validate_route)

我应该怎么办?

回答

2

使用此代码工作正常。

callback validation rule 
callback_fieldname_check   
//function name callback_fieldname_check(){ 

} 

// Set message - fieldname_check 

见代码

public function add() 
{ 

     $this->form_validation->set_rules('bus_id', 'Bus', 'trim|required|callback_bus_id_check'); 
     $this->form_validation->set_rules('route_id', 'Route Name', 'trim|required|callback_route_id_check'); 
     if ($this->form_validation->run() == FALSE) { 
     $this->load->view('load_your_view'); 
     }else{ 
     echo "Added"; 
     } 
} 
public function bus_id_check($val){ 
     if($val ==0) 
     { 
      $this->form_validation->set_message('bus_id_check', 'Please Select Bus.'); 
      return false; 
     } 
     else 
     { 
      return true; 
     } 
    } 

    public function route_id_check($val){ 
     if($val ==0) 
     { 
      $this->form_validation->set_message('route_id_check', 'Please Select Route.'); 
      return false; 
     } 
     else 
     { 
      return true; 
     } 
    }