2013-12-20 6 views
2

у меня есть мнение, как этотКак вызвать функцию javascript в контроллере codeigniter?

<p> 
    <div id="error_msg" class="alert alert-error"> //at this div have css .alert{display:none;} 
     <a class="close click_close">X</a> 
     <strong>oops!</strong> username atau password yang anda masukan salah 
    </div> 
</p> 

и в мой контроллер

public function login_form() { 
    $this->form_validation->set_rules('username', 'Username', 'required|trim|xss_clean'); 
    $this->form_validation->set_rules('password', 'Password', 'required|md5|xss_clean'); 
    $this->form_validation->set_error_delimiters('<span class="error">', '</span>'); 

    if($this->form_validation->run()==FALSE) { 
     $this->load->view('v_admin_login'); 
    } else { 
     $username = $this->input->post('username'); 
     $password = $this->input->post('password'); 

     $cek = $this->m_admin_login->getAdmin($username, $password, 1, 1); 

     if($cek <> 0) { 
      $this->session->set_userdata('isLogin', TRUE); 
      $this->session->set_userdata('username',$username); 
      $this->session->set_userdata('level',$level); 

      redirect('admin'); 
     } else { 
      //I want to change class alert to .alert{display:block} 
      //What should I do? 
     } 
    } 
} 

дело я хочу показать DIV с классом предупреждения, если ввести имя пользователя или пароль был неправильно ..

+1

Вы должны сделать валидацию в ajax. Затем вы можете легко показать сообщение об ошибке в поле предупреждения. –

ответ

5

Печать Код JavaScript-код, как если строка с командой ECHO , но не забудьте поставить тег. См. Мой пример:

<? 

class Test extends CI_Controller { 

    function Test() { 
     parent::__construct(); 

    } 

    function index() { 

     echo "<script language=\"javascript\">alert('test');</script>"; 
    } 
} 
1

Их невозможно включить в контроллер код javascript.

Возможные решения

Метод один:

Создать один вид ошибки и когда вы хотите, чтобы показать некоторые ошибки перенаправления пользователя на этой странице.

Метод два:

public function login_form() { 


    $CI = & get_instance(); /// Added New line 


    $this->form_validation->set_rules('username', 'Username', 'required|trim|xss_clean'); 
    $this->form_validation->set_rules('password', 'Password', 'required|md5|xss_clean'); 
    $this->form_validation->set_error_delimiters('<span class="error">', '</span>'); 

    if($this->form_validation->run()==FALSE) { 
     $this->load->view('v_admin_login'); 
    } else { 
     $username = $this->input->post('username'); 
     $password = $this->input->post('password'); 

     $cek = $this->m_admin_login->getAdmin($username, $password, 1, 1); 

     if($cek <> 0) { 
      $this->session->set_userdata('isLogin', TRUE); 
      $this->session->set_userdata('username',$username); 
      $this->session->set_userdata('level',$level); 

      redirect('admin'); 
     } else { 
     /// Added New Section 
      $this->theme->set_message('Your error Msg', 'error'); 
      $data = array("username" => $this->input->post('username');, 
       "password" => $this->input->post('password');, 
       "ci" => $CI 
      ); 
     } 
    } 

    $this->theme->view($data, "Your view page"); /// Added New line 

} 

Сейчас в View

Поместить эту строку, где вы хотите, чтобы показать Msg

<?php echo $ci->theme->message(); ?> /// Added New line 
+0

thankyou, но я хочу показать свою ошибку msg на моем представлении с моим сообщением об ошибке, например, в div с предупреждением класса Я просто хочу показать это, если имя пользователя или пароль были неправильными – madrick

+0

'$ this-> theme-> set_message ('Ваша ошибка Msg', 'error'); 'замените ваше сообщение об ошибке первым параметром. И поместите ' theme-> message(); ?> '\ this в вашей части просмотра, где вы хотите отобразить ошибку. – Kashyap

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