8描述:
获得 test.php 页面返回的 json 格式的内容::
jQuery 代码:
$.post("test.php", { "func": "getNameAndTime" },
function(data){
alert(data.name); // John
console.log(data.time); // 2pm
}, "json");
返回数据类型若为json格式,则对应方法echo json_encode(data);
案例:
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
public function index(){
$this->display();
}
public function test()
{
$account=I('post.account');
$user="dalei";
echo $account.".".$user;
}
}
//
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
用户名:<input type="text" id="uName" class="uName">
<p></p>
<a></a>
<script type="text/javascript" src="__PUBLIC__/jquery-1.8.2.min.js"></script>
<script>
window.οnlοad=function()
{
alert("加载成功!");
}
$(document).ready(function(){
$('#uName').blur(function(){
var account=1;
$.post("__URL__/test", { "account": account },function(data){
// alert(data);
var list=data.split(".");
var a=list[0];
var b=list[1];
$("p").html(a);
$("a").html(b);
// document.write(data.split("."));
},"text");
})
})
</script>
前端js写法:
<script src="/m/Public/js/jquery.js"></script>
<script>
$(function(){
$('#uName').blur(function(){
var account=$('#uName').val();
if(account==''){
$('.uName').html('请输入用户名');
return false;
}
if(account.length<5 ||account.length>=16){
$('.uName').html('用户名长度必须在5-16位之间');
$('.uName').css('color','red');
return flase;
}
$.post('__URL__/checkAccount',{'account':account},function(data){ //__URL__/checkAccount不可写成U(")方式,可用原生天“index.php/Home/控制器/方法”
if(data==1){
$('.uName').html('该用户名已注册');
}else{
$('.uName').html('恭喜,此用户名可以使用。');
$('.uName').css('color','green');
}
})
})
$('input[type=password]').blur(function(){
if($(this).is('#uPwd')){
if($(this).val()==''){ $('.uPwd').html('请输入密码'); }
if($(this).val().length<5 || $(this).val().length>=16){
$('.uPwd').html('密码长度必须在5-16位之间');
}else{
$('.uPwd').html('密码正确');
$('.uPwd').css({'color':'green','fontSize':'14px'});
}
}
if($(this).is('#uPwd1')){
if($(this).val()==''){ $('.uPwd1').html('请输入确认密码');}
if($(this).val().length<5 || $(this).val().length>=16){
$('.uPwd1').html('密码长度必须在5-16位之间');
}else{
if($('#uPwd').val()!=$('#uPwd1').val()){
$('.uPwd1').html('两次密码不一致');
}else{
$('.uPwd1').html('密码正确');
$('.uPwd1').css({'color':'green','fontSize':'14px'});
}
}
}
})
$('#email').blur(function(){
var email=$('#email').val();
var reg=/^[a-z0-9](\w|\.|-)*@\w{2,}\.(com|cn|net|com.cn|net.cn)$/i;
if(!reg.test(email)){
$('.email').html('邮箱格式不正确');
$('.email').css({'color':'red','fontSize':'14px'});
return false;
}else{
$('.email').html('邮箱正确');
$('.email').css({'color':'green','fontSize':'14px'});
}
$.post('__URL__/checkEmail',{'email':email},function(data){
if(data==1){
$('.email').html('邮箱已注册');
$('.email').css({'color':'red','fontSize':'14px'});
return false;
}
})
})
})
$(function(){
$('#phone').blur(function(){
var phone=$('#phone').val();
/* var reg=/^1[3458]\d{9}$/;
if(!reg.test(phone)){
$('.phone').html('手机号码格式不正确');
$('.phone').css({'color':'red','fontSize':'14px'});
return false;
}else{
$('.phone').html('手机号码正确');
$('.phone').css({'color':'green','fontSize':'14px'});
}*/
$.post('__URL__/phone',{'phone':phone},function(data){
alert(data);
if(data==1){
$('.phone').html('手机号码已注册');
$('.phone').css({'color':'red','fontSize':'14px'});
return false;
}
})
})
$('#userLogin').click(function(){
var account=$('#uName').val();
var uPwd=$('#uPwd').val();
var uPwd1=$('#uPwd1').val();
var email=$('#email').val();
var phone=$('#phone').val();
if(account==''){$('.uName').html('请输入用户名'); return false;}
if(uPwd==''){$('.uPwd').html('请输入用户密码'); return false; }
if(uPwd1==''){$('.uPwd1').html('请输入确认密码'); return false; }
if(email==''){$('.email').html('请输入电子邮箱'); return false; }
if(phone==''){$('.phone').html('请输入手机号码'); return false; }
$.post('__URL__/reg',{'account':account,'password':uPwd,'email':email,'phone':phone},function(data){
if(data==1){
alert('注册成功');
window.location.href='__APP__/Member/User/index';
return false;
}else if(data==2){
alert('注册失败');
return false;
}
})
})
})
</script>
对应控制器写法:
thinkphp jquery与ajax用户注册表单验证
实例:thinkphp jquery与ajax实现用户注册表单验证
步骤:
1,检测用户名是否已注册。
2,对邮箱进行检测是否已被注册过。
3,对手机号码进行检测是否已被注册过。
4,分别对这三个表单框添加失去焦点的事件。
5,最后,当点击新用户注册时,对所有文本控件的值判断是否为空,为空则不允许提交。
<?php
UserAction extends Action{
public function reg(){
if(IS_POST){
if(M('member')->data($_POST)->add()){
echo 1;
}else{
echo 2;
}
}
$this->display();
}
public function checkAccount(){
$account=I('post.account');
$list=M('member')->where(array('account'=>$account))->select();
$list=$list[0];
if(!empty($list)){
echo 1;
}
}
public function checkEmail(){
$email=I('post.email');
$list=M('member')->where(array('email'=>$email))->select();
$list=$list[0];
if(!empty($list)){
echo 1;
}
}
public function phone(){
$phone=I('post.phone');
$list=M('member')->where(array('phone'=>$phone))->select();
$list=$list[0];
if(!empty($list)){
echo 1;
}
}
}
?>