强烈建议首先“始终仔细阅读文档”
CodeIgniter jQuery validator library 的作者已经清楚地提到了完成这项工作的所有必要步骤,除了 you have to add jQuery validation plugin in your html head :D 好吧,对于经验丰富的玩家来说这是不必要的,但对于初学者来说肯定必须在那里提及。 .
第 1 步:Download zip file 来自 CodeIgniter jQuery 验证器
& 将library/Jquery_validation.php 从那里放到你的
CodeIgniter/application/library/Jquery_validation.php
步骤 - 2:将此库加载到您的控制器中
$this->load->library('jquery_validation'); 或者你可以自动加载这个
通过将代码 $autoload['libraries'] =
array('jquery_validation'); 放入库
CodeIgniter/application/config/autoload.php.
步骤 - 3:创建一些必需的代码来完成这项工作。
// set validation rule to jquery validation lib
$this->jquery_validation->set_rules($rules);
// set validation message to jquery validation lib
$this->jquery_validation->set_messages($messages);
// create jquery validation script for form #login-form
$validation_script = $this->jquery_validation->run('#login-form');
第 4 步:不要忘记添加 jQuery validation plugin
你的看法
& 最后是完整的工作示例代码:
<?php
// security first always....
(defined('BASEPATH') or exit('No direct script access allowed'));
/**
* Class Controller
*
* Class Logins Controller to handle login & logout
*/
class Logins extends CI_controller
{
/**
* Class Constructor
*/
public function __construct()
{
// execute parent class constructor
parent::__construct();
// load helpers
$this->load->helper(array('form', 'url', 'security'));
// load codeigniter for validation lib
$this->load->library('form_validation');
// load jquery validation lib
$this->load->library('jquery_validation');
}
/**
* Default method to execute if method name missing
* @return [type] [description]
*/
public function index()
{
// check if user login or not
if (!$this->session->userdata('name')) {
// form validation rules
$rules = array(
array(
'field' => 'name',
'label' => 'Name',
'rules' => 'trim|required|xss_cleaned|min_length[3]|max_length[25]',
),
array(
'field' => 'pass',
'label' => 'Secret Password',
'rules' => 'required',
),
);
// form validation message
$messages = array(
'name' => array(
'required' => "jQuery validation User Name is required",
'min_length' => "jQuery validation, Please enter more then 3 char",
'max_length' => "jQuery validation, Please enter less then 25 char",
),
'pass' => array('required' => "jQuery validation Password is required"),
);
// set validation rule to jquery validation lib
$this->jquery_validation->set_rules($rules);
// set validation message to jquery validation lib
$this->jquery_validation->set_messages($messages);
// create jquery validation script for form #login-form
$validation_script = $this->jquery_validation->run('#login-form');
// collect script and send to view
$data = ['validation_script' => $validation_script];
// show login view
$this->load->view('form', $data);
}
// if already logged in, show other view
else {
// get name from session login flag
$name = $this->session->userdata('name');
// load view
$this->load->view('form', $name);
}
}
/**
* login Form POST Method to verify Users identity
* @return [type] [description]
*/
public function do_login()
{
// if POST made then only
if ($this->input->post()) {
// form validation rule for codeigniter validation
$rules = array(
array(
'field' => 'name',
'label' => 'Name',
'rules' => 'trim|required|xss_cleaned|min_length[3]|max_length[25]',
),
array(
'field' => 'pass',
'label' => 'Secret Password',
'rules' => 'required',
),
);
// custom validation message for server side form validation
$this->form_validation->set_message('required', 'CodeIgniter validation, The %s is required filed');
$this->form_validation->set_message('min_length', 'CodeIgniter validation, The %s Please enter more then 3 char');
$this->form_validation->set_message('max_length', 'CodeIgniter validation, The %s Please enter less then 25 char');
// form validation using codeigniter built-in lib
$this->form_validation->set_rules($rules);
// check validation
if ($this->form_validation->run() === false) {
// validation failed
$this->load->view('form');
} else {
// safe from CSRF, use 2nd param as TRUE in POST
$name = $this->input->post('name', true);
$pass = $this->input->post('pass', true);
// if result
if ($name == 'admin' && $pass == 'admin') {
$sess_login = array(
'name' => $name,
);
// set session login flag
$this->session->set_userdata($sess_login);
// load view
$this->load->view('form', $name);
} else {
redirect('logins');
}
}
} else {
redirect('logins');
}
}
/**
* Log Out Method
* @return [type] [description]
*/
public function userlogout()
{
$this->session->unset_userdata('name');
redirect('logins');
}
}
/* End of file logins.php */
/* Location: ./application/controllers/logins.php */
&这里是查看源代码:
<?php
$name = $this->session->userdata('name');
?>
<!DOCTYPE html>
<html>
<head>
<title>CodeIgniter jQuery validation</title>
<!-- load bootstrap css -->
<link rel="stylesheet" type="text/css" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<!-- load jquery library -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<!-- load bootstrap js -->
<script type="text/javascript" src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<!-- load jquery validation javascript plugin -->
<script type="text/javascript" src="//cdn.jsdelivr.net/jquery.validation/1.16.0/jquery.validate.min.js"></script>
<!-- echo jQuery form validation script from Controller -->
<script type="text/javascript">
<?php echo $validation_script;?>
</script>
</head>
<body>
<div class="jumbotron vertical-center">
<?php if ($name !== false): ?>
<div class="container">
<div class="alert alert-success">Wohoo!! You made it.. <?php echo $name ?> <a href="<?php echo base_url()?>logins/userlogout" class="btn btn-danger">Log Out</a></div>
</div>
<?php else: ?>
<div class="container">
<?php echo (validation_errors()) ? '<div class="alert alert-danger">'.validation_errors().'</div>' : ''; ?>
<?=form_open('logins/do_login', 'id="login-form" class="form-controller"'); ?>
<fieldset>
<legend>Login Information</legend>
<div class="form-group">
<label for="name">Name</label>
<input type="text" class="form-control" name="name" id="name" placeholder="Please enter your user name here" value="<?php echo set_value('name'); ?>">
</div>
<div class="form-group">
<label for="password">Secret Password</label>
<input type="password" class="form-control" id="password" name="pass" placeholder="Please enter your password here" value="<?php echo set_value('pass'); ?>">
</div>
</fieldset>
<div class="form-group row">
<div class="offset-sm-2 col-sm-10">
<button type="submit" class="btn btn-primary">Sign in</button>
</div>
</div>
<?=form_close();?>
</form>
</div>
<?php endif ?>
</div>
</body>
</html>
您可以在浏览器中使用http://localhost/CodeIgniter/logins url 来查看演示。