如何在CodeIgniter表单验证中使用Bootstrap错误样式?

时间:2014-05-22 09:43:54

标签: php jquery css codeigniter twitter-bootstrap

我的代码有点问题。我正在研究bootstrap CSS。我对这个框架非常惊讶。这就是我决定学习这个的原因。我并不是真的没有足够的CSS知识。但我明白了一点。

我正在创建一个表单,如果用户名或密码错误,我想要验证消息。我有一个必需的验证。但在创建我的验证并传递给模型之后。我不知道如何再次显示到同一页面并显示我的错误消息?

这是我的简单代码。

在我的控制器中

class Admin extends MX_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->model('admin/adminauth');
    }

    public function index() {

        $data['title'] = "Administration";

        $this->form_validation->set_rules('username', 'Username', 'required|xss_clean');
        $this->form_validation->set_rules('password', 'Password', 'required|xss_clean');

        if ($this->form_validation->run() == FALSE) {

            $this->load->view('header/header',$data);
            $this->load->view('contents/login',$data);
            $this->load->view('footer/footer');

        } else {

            $validate_login = $this->adminauth->validate_login();

            if($validate_login > 0) {



            } else {

                            //this should be go back again to the index and display my error message.
                $this->index();

            }

        }

    }

}   

在我看来,我有这个

<div class="panel-body form-admin-signin">

    <?php 
        $form_array = array(
            'class' => 'form-signin'
        );
        echo form_open('admin',$form_array); 
    ?>
        <div class="form-group">

            <h3 class="form-signin-heading">Username</h3>
                <input type="text" name="username" class="form-control inputs" placeholder="username" value="<?php echo set_value('username'); ?>"  />
                <?php echo form_error('username','<div class="error_msg">','</div>'); ?>
            <h3 class="form-signin-heading">Password</h3>
                <input type="password" name="password" class="form-control inputs" placeholder="password" value=""  />
                <?php echo form_error('password','<div class="error_msg">','</div>'); ?>
            <div class="checkbox">
                <label><input type="checkbox" /> Remember me</label>
            </div>
            <input type="submit" class="btn btn-primary login-btn" value="Login" />

        </div>
    <?php echo form_close(); ?>

    <?php   
            //THIS IS I WANT TO DISPLAY. IF INVALID THE CHECKING IN SQL IT WILL DISPLAY BELOW THE FORM
        $validate = '';
        if($validate == 1) {
    ?>
            <div class="alert alert-danger">
                <label>Invalid Username or Password please try again!</label>
            </div>
    <?php
        }
    ?>

</div>

在我的模型中,我有这个

class AdminAuth extends CI_Model {

    public function __construct() {
        parent::__construct();
    }

    public function validate_login() {

        $username = $this->input->post('username');
        $password = md5($this->input->post('password'));

        $query = "SELECT username FROM user WHERE username = '".$username."' AND password = '".$password."' LIMIT 1";
        $get_result = $this->db->query($query);

        return $get_result->num_rows();

    }

}

所有人,我希望你能帮助我。或者你可以给我一个使用AJAX的例子吗?

2 个答案:

答案 0 :(得分:1)

$this->session->set_flashdata('error', 'Error while sending enquiry email.');
$this->index();

或者您可以使用: -

$this->session->set_flashdata('error', 'Error while sending enquiry email.');
redirect('contoller');

视图: -

<?php echo $this->session->flashdata('error');?>

答案 1 :(得分:0)

您可以在

中的控制器中创建$data['errors']变量

if ($this->form_validation->run() == FALSE) {

添加

$data['errors'] = validation_errors();

并在视图文件的顶部添加

<?php if(isset($errors)){ ?>
     <div class="alert alert-danger"> <!--bootstrap error div-->
          <?=$errors?>
     </div>
<?php } ?>