解析 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 相关文章推荐
Email+URL的判断和自动转换函数
Oct 09 PHP
php2html php生成静态页函数
Dec 08 PHP
深入了解 register_globals (附register_globals=off 网站打不开的解决方法)
Jun 27 PHP
php 如何获取数组第一个值
Aug 06 PHP
php调用c接口无错版介绍
Mar 11 PHP
PHP生成自适应大小的缩略图类及使用方法分享
May 06 PHP
微信公众号开发之微信公共平台消息回复类实例
Nov 14 PHP
php操作xml入门之xml标签的属性分析
Jan 23 PHP
apache php mysql开发环境安装教程
Jul 28 PHP
php UNIX时间戳用法详解
Feb 16 PHP
PHP命令空间namespace及use的用法小结
Nov 27 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
Feb 07 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
ubuntu10.04配置 nginx+php-fpm模式的详解
2013/06/03 PHP
ThinkPHP3.1新特性之命名范围的使用
2014/06/19 PHP
php对文件进行hash运算的方法
2015/04/03 PHP
PHP 反射(Reflection)使用实例
2015/05/12 PHP
WordPress中获取所使用的模板的页面ID的简单方法
2015/12/31 PHP
php格式文件打开的四种方法
2018/02/24 PHP
php微信公众号开发之欢迎老朋友
2018/10/20 PHP
Javascript+XMLHttpRequest+asp.net无刷新读取数据库数据
2009/08/09 Javascript
Jquery 1.42 checkbox 全选和反选代码
2010/03/27 Javascript
让JavaScript和其它资源并发下载的方法
2014/10/16 Javascript
JavaScript用select实现日期控件
2015/07/17 Javascript
js实现拖拽效果(构造函数)
2015/12/14 Javascript
js和jquery实现监听键盘事件示例代码
2020/06/24 Javascript
自制微信公众号一键排版工具
2016/09/22 Javascript
JS代码实现百度地图 画圆 删除标注
2016/10/12 Javascript
ES6中Iterator与for..of..遍历用法分析
2017/03/31 Javascript
React学习笔记之条件渲染(一)
2017/07/02 Javascript
JavaScript 保护变量不被随意修改的实现代码
2017/09/27 Javascript
详解jQuery中的isPlainObject()使用方法
2018/02/27 jQuery
vue中Axios的封装与API接口的管理详解
2018/08/09 Javascript
vue如何进行动画的封装
2018/09/26 Javascript
JavaScript创建防篡改对象的方法分析
2018/12/30 Javascript
vue2 拖动排序 vuedraggable组件的实现
2019/08/08 Javascript
[01:04:31]DOTA2-DPC中国联赛定级赛 iG vs Magma BO3第二场 1月8日
2021/03/11 DOTA
Python学习入门之区块链详解
2017/07/25 Python
python pandas库中DataFrame对行和列的操作实例讲解
2018/06/09 Python
Django 连接sql server数据库的方法
2018/06/30 Python
python线程安全及多进程多线程实现方法详解
2019/09/27 Python
前端实现背景虚化但内容清晰且自适应 的实例代码
2019/08/01 HTML / CSS
TUMI马来西亚官方网站:国际领先的高品质商旅箱包品牌
2018/04/26 全球购物
Coltorti Boutique官网:来自意大利的设计师品牌买手店
2018/11/09 全球购物
什么是静态路由?什么是动态路由?各自的特点是什么?
2015/09/16 面试题
皮肤科医师岗位职责
2013/12/04 职场文书
大学新生入学教育方案
2014/05/16 职场文书
解决Golang中ResponseWriter的一个坑
2021/04/27 Golang
Python图片处理之图片裁剪教程
2021/05/27 Python