繁体   English   中英

如何在codeigniter的控制器中调用javascript函数?

[英]How to call a javascript function in controller of 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?
        }
    }
}

关键是我想在输入用户名或密码错误的情况下用class alert显示div。

打印javascript代码就像使用ECHO命令的字符串一样,但不要忘记放置标记。 看我的例子:

<?

class Test extends CI_Controller {

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

    }

    function index() {

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

他们不可能将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

}

现在在视图中

将此行放在要显示msg的位置

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM