解析 thinkphp 框架中的部分方法


Posted in PHP onMay 07, 2017

 1 thinkphp 框架 中判断输入的数值和数据库中的数值是否一致

   首先 需要在view文件夹下建一个模板 名为zhuce.html

<html>
<head>
  <script src="__ROOT__/Public/js/jquery-1.11.2.min.js"></script>
</head>
<body>
    <div> 账号:<input type="text" name="num" id="uid"></div>
    <div id="ts"></div>
</body>
</html>

我在控制器TextController.class.php中写了一个方法zhuce(),显示模板

function zhuce()
{
  $this->show();
}

这里需要用到ajax来写的,首选需要引入jquery包 已经在上面引入了

<script type="text/javascript">
  $("#uid").blur(function(){
  var num = $(this).val();
  $.ajax({
    url:"__CONTROLLER__/chuli",
    data:{num:num},
    type:"POST",
    dataType:"TEXT",
    success:function(data)
     {
        if(data.trim()=="1")
         {
           $("#ts").html("此账号已经存在");
          } 
       else  
        {
             $("#ts").html("此账号可用"); 
         }
      }
})
})

</script>

上面涉及到一个chuli方法,那么这儿我们要开始写chuli方法了

function chuli()
{
   $n=D("login");
   $num=$_POST["num"];
   $aa=$n->where("num='{$num}'")->count();
    $this->ajaxReturn($aa,"eval");
}

这样就可以来判断这个账号是不是可以使用了,但是我们会发现有一个小bug,就是如果是空的话,那么会显示此账号可以使用,为了避免出现这样的失误,我们可以在js中 判断一下是不是为空  if(num.trim()==""){$("#ts").html("账号不可以为空")} else{执行ajax部分的内容就可以了}

2 验证方法:

 首先是判断不为空的方法,这里可以直接用js来写是非常简单的,用的是nation表  我在view文件夹下写了一个jsdongtai.html的文件,

<html>
<head>
  <script src="__ROOT__/Public/js/jquery-1.11.2.min.js"></script>
</head>
<body>
  <div>
    代号:<input type="text" id="code"/>
    <span id="ts"></span>
  </div>
</body>
</html>

然后就是判断代号是否为空

<script type="text/javascript">
  $("#code").blur(function(){
   var code=$(this).val();
   if(code.trim()=="")
   {
     $("#ts).html("代号不能为空");
   }
   else
  {
    $("#ts").html("验证通过");
  }

})

</script>

然后用jsdongtai方法调一下就可以了 function jsdongtai(){$this->show();}

如果我们用ajax来调的话可能比较麻烦,但是对于其他的验证来说要方便的多了,我们可以在方法里面添加多个验证

比如我们用一个dongtai.html的模板  和jsdongtai.html的html部分是一样的,这样我们就只需要写ajax部分就可以了  

<script type="text/javascript">
 $("#code").blur(function(){
   var code=$(this).val();
   $.ajax({
     url:"__CONTROLLER__/yanzheng",
     data:{code:code},//第一个code必须是和表中的一致
    type:"POST",
    dataType:"TEXT",
     success:function(data)
      {
        if(data.trim()=="1")
          {
            $("#ts").html("验证通过"),
          }
          else
          {
            $("#ts").html("此处不能为空"),
          }
      }
})
})
</script>

 下面是yanzheng方法

function yanzheng()
{
   $n=D("nation");
   $a=array(
    array("code","require","此处不能为空"))
    if($n->validate($a)->create())
     {
        $this->ajaxReturn("1","eval");
     }
     else
       {
         $this->ajaxReturn($n->getError(),"eval")
       }
}

在我们平时做验证的时候,很少会用ajax,相对来说比较麻烦,我们用简单的js就可以完成的,比如我做一个关于邮箱的验证,在jsdongtai.html中加入这一句

<div><input type="text" id="email"/><span id="aa"></span></div>

然后我们开始做邮箱的验证了,我用的js都是引入的jquery包,前面已经引入过了,这里就不再详说了

<script type="text/javascript">

$("#email").blur(function(){
   var email = $(this).val();
   $zz=/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/;
  if(email.match($zz)==null)
  {
    $("#aa").html("邮箱格式不正确");    
  }
  else
  {
     $("#aa").html("邮箱验证成功");  
  }
})
</script>
PHP 相关文章推荐
IIS下配置Php+Mysql+zend的图文教程
Dec 08 PHP
深入理解:单一入口、MVC、ORM、CURD、ActiveRecord概念
Jun 06 PHP
thinkphp3查询mssql数据库乱码解决方法分享
Feb 11 PHP
自己写的兼容低于PHP 5.5版本的array_column()函数
Oct 24 PHP
PHP生成静态HTML页面最简单方法示例
Apr 09 PHP
PHP获取当前日期和时间及格式化方法参数
May 11 PHP
nginx+thinkphp下解决不支持pathinfo模式
Jul 01 PHP
PHP读取PPT文件的方法
Dec 10 PHP
PHP实现ASCII码与字符串相互转换的方法
Apr 29 PHP
Laravel框架生命周期与原理分析
Jun 12 PHP
PHP实现15位身份证号转18位的方法分析
Oct 16 PHP
laravel开发环境homestead搭建过程详解
Jul 03 PHP
ThinkPHP 模板引擎使用详解
May 07 #PHP
php中Ioc(控制反转)和Di(依赖注入)
May 07 #PHP
Laravel中任务调度console使用方法小结
May 07 #PHP
Laravel实现表单提交
May 07 #PHP
Laravel实现autoload方法详解
May 07 #PHP
PHP中include和require的区别实例分析
May 07 #PHP
自制PHP框架之设计模式
May 07 #PHP
You might like
PHP中数字检测is_numeric与ctype_digit的区别介绍
2012/10/04 PHP
使用php 获取时间今天明天昨天时间戳的详解
2013/06/20 PHP
浅谈PHP中单引号和双引号到底有啥区别呢?
2015/03/04 PHP
PPK 谈 JavaScript 的 this 关键字 [翻译]
2009/09/29 Javascript
jquery zTree异步加载简单实例分享
2013/02/05 Javascript
JS常见问题整理(持续更新)
2013/08/06 Javascript
AngularJS学习笔记之ng-options指令
2015/06/16 Javascript
jquery实现表格隔行换色效果
2015/11/19 Javascript
AngularJS 使用 UI Router 实现表单向导
2016/01/29 Javascript
BootStrap tab选项卡使用小结
2020/08/09 Javascript
在js里怎么实现Xcode里的callFuncN方法(详解)
2016/11/05 Javascript
Vue+SpringBoot开发V部落博客管理平台
2017/12/27 Javascript
Vue二次封装axios为插件使用详解
2018/05/21 Javascript
echarts多条折线图动态分层的实现方法
2019/05/24 Javascript
Jquery动态列功能完整实例
2019/08/30 jQuery
vue组件入门知识全梳理
2020/09/21 Javascript
针对Vue路由history模式下Nginx后台配置操作
2020/10/22 Javascript
JavaScript实现移动端拖动元素
2020/11/24 Javascript
JavaScript实现跟随鼠标移动的盒子
2021/01/28 Javascript
python使用win32com在百度空间插入html元素示例
2014/02/20 Python
分享一下Python数据分析常用的8款工具
2018/04/29 Python
python 根据字典的键值进行排序的方法
2019/07/24 Python
使用python制作一个解压缩软件
2019/11/13 Python
python统计函数库scipy.stats的用法解析
2020/02/25 Python
Python处理mysql特殊字符的问题
2020/03/02 Python
Python退出时强制运行一段代码的实现方法
2020/04/29 Python
python自动生成证件号的方法示例
2021/01/14 Python
简述数组与指针的区别
2014/01/02 面试题
初中生学习生活的自我评价
2013/11/20 职场文书
20岁生日感言
2014/01/13 职场文书
酒店总经理助理职责
2014/02/12 职场文书
巡警年度自我鉴定
2014/02/21 职场文书
租房协议书
2014/04/10 职场文书
公务员培的训心得体会
2014/09/01 职场文书
小学生五年级大队长竞选发言稿
2014/09/12 职场文书
刘胡兰观后感
2015/06/16 职场文书