因为刚开始学ci框架也遇到的挺多问题,而ajax在ci框架异步传输我花了不少时间,所以通过一个小案例来分享我暂时了解的!
//首先在控制器上面写了验证用户名的方法
class Usercheck extends MY_Controller {
/**
*检查输入的用户名是否存在
*/
public function theName() {
/*获取用户名并且过滤*/
$name=checkClear($_POST['name']);
/*判断获取的用户名是否为空*/
if(!empty($name)){
/*调用自己设置的模型连接数据库进行验证*/
$where =array('user_name'=>$name);
$bool=@$this->user_model->userGet($where);
/*获取$bool值判断是否存在*/
if ($bool) {
//用户名已存在 返回json到ajax
echo json_encode(array('flag'=>'1'));
exit;
}else{
//用户名不存在可以使用
echo json_encode(array('flag'=>'0'));
exit;
}
//然后是模型里面跟数据库的链
class User_model extends CI_Model {
/* 获取数据库数据*/
public function userGet($where) {
$res = $this->db->get_where(self::TABLE_USER, $where);
return $res->result();
}
//最后是视图页面,通过ajax去异步传输
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="<?php echo base_url('js/jquery-1.7.2.min.js')?>"></script>
<title>ajax异步传输验证用户名</title>
<script type="text/javascript">
$(document).ready(function(){
/*ajax验证用户是否存在重复*/
$('#name').focusout(function(){
$.ajax({
type:'POST',
url:'http://写你自己的控制器/theName',//路径
data:{
name:$('#name').val()
},
dataType:'json',
success:function(msg){
if(msg.flag==1){
$('#checkbox2').html("<font color=\"red\">您输入的用户名存在!请重新输入!</font>");
}else{
$('#checkbox2').html("<font color=\"green\">用户格式正确!</font>");
}
}
})
});
</script>
</head>
<body>
<form action="<?php echo site_url('userreg/regOption'); ?>" method="post" >
<p align="center">用户 名:<input type="text" name="name" placeholder="用户名" id="name" />
<p align="center" id="checkbox2"></p></p>
</form>
</body>
</html>