登录  /  注册

ThinkPHP框架实现表单验证功能代码

小云云
发布: 2018-02-06 10:01:32
原创
1324人浏览过

自动验证是thinkphp模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证。分为静态验证和动态验证。本文主要和大家介绍thinkphp框架表单验证操作方法,需要的朋友可以参考下,希望能帮助到大家。

一、静态验证

(1)在Home/Controller/路径下新建Index控制器。IndexController

 IndexController.class.php页面

注意:静态定义方式因为必须定义模型类,所以只能用D函数实例化模型

     create方法是对表单提交的POST数据进行自动验证

<?php namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function yanzheng(){
    $u= D("users");//造一个子类对象
    if(empty($_POST)){
      $this->show();
    }else{
      if($u-&gt;create()){//验证
        echo"验证通过";
      }else{
        echo $u-&gt;getError();//获取错误信息
      }
    }
  }
}
登录后复制

 (2)在view/Index文件夹下做yanzheng.html页面

nbsp;html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;


<meta><title>无标题文档</title><script></script><h1>验证界面</h1>
登录后复制
登录后复制

用户名:

密码:

确认密码:

年龄:

邮箱:

 效果图:

(3)在Model层写静态验证的验证:(路径如图)

UsersModel.class.php

<?php namespace Home\Model;
use Think\Model;
class UsersModel extends Model{
    //添加验证条件
    protected $_validate = array(  
      array("uid","require","用户名不能为空!"), //默认情况下用正则进行验证
      array("pwd1","require","密码不能为空!"),
      array("pwd2","require","密码不能为空!"),   
      array("pwd2","pwd1","两次输入的密码不一致",0,"confirm"), // 验证确认密码是否和密码一致
      array("age","18,50","年龄不在范围内",0,"between"),
      array("Email","email","邮箱格式不正确"),
    );
}
登录后复制

 依次验证效果图:

当全部为空时,点击验证

会跳转

输入用户名,其他不输入时,会跳转

两次密码输入不一致时,会提示;年龄不在范围内会提示;邮箱格式不正确时会提示;

 

输入正确格式内容后

 二、动态验证

(1)  IndexController.class.php页面

<?php namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function yz(){
    $u= M("users");//造一个父类对象
    if(empty($_POST)){
      $this->show();
    }else{
      $rules = array(
        array("uid","require","用户名不能为空!"),
      );
      if($u-&gt;validate($rules)-&gt;create()){//验证
        $this-&gt;ajaxReturn("ok","eval");
      }else{
        $this-&gt;ajaxReturn("no","eval");
      }
    }
  } 
}
登录后复制

 (2) yz.html页面:

nbsp;html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;


<meta><title>无标题文档</title><script></script><h1>验证界面</h1>
登录后复制
登录后复制

<script> $("#uid").blur(function(){ var uid = $(this).val(); $.ajax({ url:"__ACTION__", data:{uid:uid}, type:"POST", dataType:"TEXT", success: function(data){ if(data.trim()=="ok") { $("#ts").html("验证通过"); } else { $("#ts").html("用户名不能为空"); } } }); }) </script>

 看一下效果:

 当文本框失去焦点时:

当文本框有内容时,再失去焦点:

相关推荐:

极客学院深入ThinkPHP框架视频教程的资源推荐

以上就是ThinkPHP框架实现表单验证功能代码的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号