2013-12-03 4 views
0

В приведенном ниже кодеминиринговом коде я разместил контроллер, модель и просмотр. В моем логине я создал имя пользователя, пароль и колледж в выпадающем списке для проверки пользователя. Но я получил ошибку в имени колледжа. Сообщение: Неопределенная переменная: validate, Message: Недопустимый аргумент, предоставленный foreach(). Pls поможет мне решить проблему. контроллерcodeigniter dropdown не работает

function college() 
{ 
    $this->load->helper('url'); 
    $data = array(); 

    $this->load->model("membership_model"); 
    $data['validate'] = $this->Membership_model->validate(); 


    $this->load->view('login_form'); 


} 
function validate_credentials() 
    {  
     $this->load->model('membership_model'); 
     $query = $this->membership_model->validate(); 

     if($query) // if the user's credentials validated... 
     { 
      $data = array(
       'username' => $this->input->post('username'), 
       'is_logged_in' => true 
      ); 
      if($query->num_rows()>0){ 
      $status = $query->row()->account_status;} 
      else { 
      $status = ''; } 
      //Account active 
      if($status == 'active') 
      { 
       $this->session->set_userdata($data); 
       redirect('site1/members_area'); 
      } 
      else if ($status == 'inactive')//Account In active 
      { $this->inactive(); 
       } 
       else // incorrect username or password 
     { 
      $this->invalid(); 
     } 
     } 

    } 

модель:

function validate() 
    { 
     $this->db->where('username', $this->input->post('username')); 
     $this->db->where('password', md5($this->input->post('password'))); 
     $this->db->where('college_name', $this->input->post('college_name')); 
      $query = $this->db->query("SELECT college_name FROM membership "); 
     $query = $this->db->get('membership'); 
     return $query->result(); 
    } 

вид:

<?php 
    echo form_open('login/validate_credentials'); 
    echo form_input('username', 'Username'); 
    echo form_password('password', 'Password'); 
    $array = array(); 
      foreach($validate as $row){ 
    $array[] = $row->college_name; 
} 
      echo form_dropdown('validate', $array); 


    echo form_submit('submit', 'Login'); 
    echo anchor('login/signup', 'Create Account'); 
    echo form_close(); 
    ?> 

ответ

1

Попробуйте использовать правильный верблюд случай здесь

$this->Membership_model->validate(); в $this->membership_model->validate();

Также вам нужно передать переменную $ data для просмотра файла.

$this->load->view('login_form',$data); 

EDIT:

В методе Validate(), который вы использовали ту же переменную ($ запроса) для 2-х различных запросов и возвращать результат запроса. Убедитесь, что вы вернули правильный результат.

+0

имя пользователя, пароль работает отлично, но имя колледжа выпадающее является проблемой – user2991258

+0

не работает – user2991258

+0

Теперь вы также получили ту же ошибку, что и «неопределенная переменная» ..? – Casperon

Смежные вопросы