溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

使用ThinkPHP框架怎么實(shí)現(xiàn)表單驗(yàn)證操作

發(fā)布時(shí)間:2021-04-13 16:59:00 來源:億速云 閱讀:216 作者:Leah 欄目:開發(fā)技術(shù)

本篇文章為大家展示了使用ThinkPHP框架怎么實(shí)現(xiàn)表單驗(yàn)證操作,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

一、靜態(tài)驗(yàn)證

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

使用ThinkPHP框架怎么實(shí)現(xiàn)表單驗(yàn)證操作

 IndexController.class.php頁面

注意:靜態(tài)定義方式因?yàn)楸仨毝x模型類,所以只能用D函數(shù)實(shí)例化模型

     create方法是對(duì)表單提交的POST數(shù)據(jù)進(jìn)行自動(dòng)驗(yàn)證

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function yanzheng(){
    $u= D("users");//造一個(gè)子類對(duì)象
    if(empty($_POST)){
      $this->show();
    }else{
      if($u->create()){//驗(yàn)證
        echo"驗(yàn)證通過";
      }else{
        echo $u->getError();//獲取錯(cuò)誤信息
      }
    }
  }
}

 (2)在view/Index文件夾下做yanzheng.html頁面

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標(biāo)題文檔</title>
<script src="__ROOT__/Public/js/jquery-3.2.0.min.js"></script>
</head>
<body>
<h2>驗(yàn)證界面</h2>
<form action="__ACTION__" method="post">
<div>用戶名:<input type="text" name="uid" /></div>
<div>密碼:<input type="password" name="pwd1"/></div>
<div>確認(rèn)密碼:<input type="password" name="pwd2"/></div>
<div>年齡:<input type="text" name="age"/></div>
<div>郵箱:<input type="text" name="Email"/></div>
<div><input type="submit" value="驗(yàn)證" /></div>
</form>
</body>
</html>

 效果圖:

使用ThinkPHP框架怎么實(shí)現(xiàn)表單驗(yàn)證操作

(3)在Model層寫靜態(tài)驗(yàn)證的驗(yàn)證:(路徑如圖)

使用ThinkPHP框架怎么實(shí)現(xiàn)表單驗(yàn)證操作

UsersModel.class.php

<?php
namespace Home\Model;
use Think\Model;
class UsersModel extends Model{
    //添加驗(yàn)證條件
    protected $_validate = array(  
      array("uid","require","用戶名不能為空!"), //默認(rèn)情況下用正則進(jìn)行驗(yàn)證
      array("pwd1","require","密碼不能為空!"),
      array("pwd2","require","密碼不能為空!"),   
      array("pwd2","pwd1","兩次輸入的密碼不一致",0,"confirm"), // 驗(yàn)證確認(rèn)密碼是否和密碼一致
      array("age","18,50","年齡不在范圍內(nèi)",0,"between"),
      array("Email","email","郵箱格式不正確"),
    );
}

 依次驗(yàn)證效果圖:

當(dāng)全部為空時(shí),點(diǎn)擊驗(yàn)證

使用ThinkPHP框架怎么實(shí)現(xiàn)表單驗(yàn)證操作

會(huì)跳轉(zhuǎn)

輸入用戶名,其他不輸入時(shí),會(huì)跳轉(zhuǎn)

兩次密碼輸入不一致時(shí),會(huì)提示;年齡不在范圍內(nèi)會(huì)提示;郵箱格式不正確時(shí)會(huì)提示;

使用ThinkPHP框架怎么實(shí)現(xiàn)表單驗(yàn)證操作 使用ThinkPHP框架怎么實(shí)現(xiàn)表單驗(yàn)證操作

使用ThinkPHP框架怎么實(shí)現(xiàn)表單驗(yàn)證操作

輸入正確格式內(nèi)容后

 二、動(dòng)態(tài)驗(yàn)證

(1)  IndexController.class.php頁面

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function yz(){
    $u= M("users");//造一個(gè)父類對(duì)象
    if(empty($_POST)){
      $this->show();
    }else{
      $rules = array(
        array("uid","require","用戶名不能為空!"),
      );
      if($u->validate($rules)->create()){//驗(yàn)證
        $this->ajaxReturn("ok","eval");
      }else{
        $this->ajaxReturn("no","eval");
      }
    }
  } 
}

 (2) yz.html頁面:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標(biāo)題文檔</title>
<script src="__ROOT__/Public/js/jquery-3.2.0.min.js"></script>
</head>
<body>
<h2>驗(yàn)證界面</h2>
<form action="__ACTION__" method="post">
<div><input type="text" name="uid" id="uid" /><span id="ts"></span></div>
<div><input type="submit" value="驗(yàn)證" /></div>
</form>
</body>
<script type="text/javascript">
$("#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("驗(yàn)證通過");
            }
            else
            {
              $("#ts").html("用戶名不能為空");
            }
          }
      });
  })
</script>
</html>

 看一下效果:

使用ThinkPHP框架怎么實(shí)現(xiàn)表單驗(yàn)證操作

 當(dāng)文本框失去焦點(diǎn)時(shí):

使用ThinkPHP框架怎么實(shí)現(xiàn)表單驗(yàn)證操作

當(dāng)文本框有內(nèi)容時(shí),再失去焦點(diǎn):

使用ThinkPHP框架怎么實(shí)現(xiàn)表單驗(yàn)證操作

上述內(nèi)容就是使用ThinkPHP框架怎么實(shí)現(xiàn)表單驗(yàn)證操作,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI