解析 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 相关文章推荐
PHP入门速成(2)
Oct 09 PHP
十天学会php之第五天
Oct 09 PHP
linux系统上支持php的 iconv()函数的方法
Oct 01 PHP
PHP对象Object的概念 介绍
Jun 14 PHP
zend framework框架中url大小写问题解决方法
Aug 19 PHP
php中运用http调用的GET和POST方法示例
Sep 29 PHP
腾讯微博提示missing parameter errorcode 102 错误的解决方法
Dec 22 PHP
PHP安装threads多线程扩展基础教程
Nov 17 PHP
PHP读取文本文件并逐行输出该行使用最多的字符与对应次数的方法
Nov 25 PHP
Symfony查询方法实例小结
Jun 28 PHP
Ubuntu彻底删除PHP7.0的方法
Jul 27 PHP
PHP数组对象与Json转换操作实例分析
Oct 22 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
实现了一个PHP5的getter/setter基类的代码
2007/02/25 PHP
php 高效率写法 推荐
2010/02/21 PHP
一个比较不错的PHP日历类分享
2014/11/18 PHP
Javascript 错误处理的几种方法
2009/06/13 Javascript
一段实现页面上的图片延时加载的js代码
2010/02/11 Javascript
JS鼠标事件大全 推荐收藏
2011/11/01 Javascript
js Array操作的最简短最容易理解方法
2013/12/09 Javascript
javascript学习笔记(三)BOM和DOM详解
2014/09/30 Javascript
JavaScript获得页面base标签中url的方法
2015/04/03 Javascript
jfreechart插件将数据展示成饼状图、柱状图和折线图
2015/04/13 Javascript
jQuery事件的绑定、触发、及监听方法简单说明
2016/05/10 Javascript
浅谈javascript基础之客户端事件驱动
2016/06/10 Javascript
javascript创建对象的3种方法
2016/11/02 Javascript
vue.js父子组件通信动态绑定的实例
2018/09/28 Javascript
vue项目持久化存储数据的实现代码
2018/10/01 Javascript
基于Vue实现图片在指定区域内移动的思路详解
2018/11/11 Javascript
python获取标准北京时间的方法
2015/03/24 Python
在Python中用split()方法分割字符串的使用介绍
2015/05/20 Python
Python基于tkinter模块实现的改名小工具示例
2017/07/27 Python
使用python将请求的requests headers参数格式化方法
2019/01/02 Python
Python OpenCV实现视频分帧
2019/06/01 Python
Python面向对象之Web静态服务器
2019/09/03 Python
python tkinter控件布局项目实例
2019/11/04 Python
Python爬虫库requests获取响应内容、响应状态码、响应头
2020/01/25 Python
python opencv pytesseract 验证码识别的实现
2020/08/28 Python
用Python自动清理电脑内重复文件,只要10行代码(自动脚本)
2021/01/09 Python
CSS3条纹背景制作的实战攻略
2016/05/31 HTML / CSS
Peter Alexander新西兰站:澳大利亚领先的睡衣设计师品牌
2016/12/10 全球购物
万宝龙英国官网:Montblanc手表、书写工具、皮革和珠宝
2018/10/16 全球购物
终止合同协议书
2014/04/17 职场文书
汉语言文学专业自荐信
2014/06/11 职场文书
英语感谢信范文
2015/01/20 职场文书
关于倡议书的范文
2015/04/29 职场文书
2015年小班保育员工作总结
2015/05/27 职场文书
歌剧魅影观后感
2015/06/05 职场文书
Python 使用dict实现switch的操作
2021/04/07 Python