解析 thinkphp 框架中的部分方法

5年以前  |  阅读数:293 次  |  编程语言:PHP 

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分页显示制作详细讲解
SSH 登录失败:Host key verification failed
将二进制数据转为16进制以便显示
获取IMSI
获取IMEI
Java生成UUID
PHP自定义函数获取搜索引擎来源关键字的方法
让你成为最历害的git提交人
在Zeus Web Server中安装PHP语言支持
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Yii2汉字转拼音类的实例代码
Python 2与Python 3版本和编码的对比
php+ajax+json 详解及实例代码
php封装的page分页类完整实例
PHP设计模式之工厂模式与单例模式
php数组合并array_merge()函数使用注意事项
PHP实现简单爬虫的方法
php实现数组中索引关联数据转换成json对象的方法
wget使用技巧