Thinkphp框架 表單自動驗證登錄注冊 ajax自動驗證登錄注冊


 

說明:這里沒練習靜態自動驗證:如果用到靜態驗證首先自定義一個控制器,再在Model文件夾里創建一個NiHaoModel.php 類  NiHao是自定義的,前綴可以隨意,但是一定要用駝峰法(首字母大寫)

 

在自定義控制器里用D()方法時里面要寫入NiHaoModel.php 類的前綴 NiHao   因為有這串代碼 protected $trueTableName = 'yonghu'; //作用是找到真實表名,系統默認找yong_hu這個表,需要定義此方法,才能找到yonghu表

 

 

 

<?php namespace Admin\Model; use Think\Model; class NiHaoModel extends Model { //protected $tablePrefix = "";
    protected $trueTableName = 'yonghu'; //作用是找到真實表名,系統默認找yong_hu這個表,需要定義此方法,才能找到yonghu表
    protected $_validate =array(//固定模式,在父類里面已定義
        array('uid','require','用戶名不能為空!',0),//非空驗證:給yonghu表中的uid列,設置非空
        array('pwd','pwd1','輸入的密碼不一致',0,'confirm'),//相等驗證:confirm(驗證表單中的兩個字段是否相同,定義的驗證規則是一個字段名),意思是pwd1必須為字段
        array('email','email','郵箱格式不正確',0),
        array('name','/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/','身份證號不正確',0,'regex'),//正則表達式,
        array('age','18,50','年齡不在范圍內',0,'between')//范圍驗證:
 ); }

 

 

 

動態驗證:(不需要建Model模型)

1.建一個控制器,做表單操作(包含驗證)

<?php namespace Biaodan\Controller; use Think\Controller; class BiaodanController extends Controller { public function test() { if(empty($_POST))//如果$_POST空,顯示添加頁面,
 { $this->show(); } else    //如果$_POST不為空,走驗證,驗證是否成功,添加數據庫 
 { $y = D("yonghu"); $arr = array(//造一個驗證規則
                array('uid','require','用戶名不能為空!',0),
                array('pwd','pwd1','輸入的密碼不一致',0,'confirm'),//相等驗證:confirm(驗證表單中的兩個字段是否相同,定義的驗證規則是一個字段名),意思是pwd1必須為字段
                array('email','email','郵箱格式不正確',0),
                array('name','/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/','身份證號不正確',0,'regex'),//正則表達式,
                array('age','18,50','年齡不在范圍內',0,'between')//范圍驗證
 ); if($y->validate($arr)->create())//$y->validate($arr),添加之前執行驗證規則
 { $y->add(); } else { die($y->getError()); } } } }

 

2.對應控制器方法的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>無標題文檔</title>
</head>

<body>
<form action="__ACTION__" method="post">
<br />
<br />
<br />
<br />

    <div>用戶名:<input type="text" name="uid" /></div>
<br />
    <div>密碼:<input type="text" name="pwd" /></div>
<br />
    <div>確認密碼:<input type="text" name="pwd1" /></div>
<br />
    <div>姓名:<input type="text" name="name" /></div>
<br />
    <div>郵箱:<input type="text" name="email" /></div>
<br />
    <div>年齡:<input type="text" name="age" /></div>
<br />
    <div><input type="submit" value="添加" /></div>


</form>
</body>
</html>    

 

ajax:(不需要建Model模型)

1.建一個控制器,做表單操作(包含驗證)

<?php namespace Admin\Controller; use Think\Controller; class ZhuCeController extends Controller { public function add(){ $this->show(); } public function addchuli(){ $y = D("yonghubiao"); $arr = array( array('uid','require','用戶名不能為空!!'),//ps: require 意思是字段必須,就是不能為空
        array('pwd','require','兩次密碼不一致!'),
        array('name','require','沒有填寫名稱!!'),
        array('email','email','郵箱格式不正確!!'),
        array('age','/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/','身份證不合法',0,'regex'), ); if($y->validate($arr)->create()){ $y->add(); $this->ajaxReturn("注冊成功","eval"); }else{ $this->ajaxReturn($y->getError(),"eval"); } } }

 

2.對應控制器方法的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" />
<script src="__PUBLIC__/js/jquery-1.11.2.min.js"></script>
<title>用戶注冊</title>
</head>

<body>
<br />
<br />
<br />

    <div>用戶名:<input type="text" id="uid" /></div>
<br />   
    <div>&nbsp;密碼:<input type="text" id="pwd" /></div>
<br />
    <div>&nbsp;名稱:<input type="text" id="name" /></div>
<br />
    <div>&nbsp;郵箱:<input type="text" id="email" /></div>
<br />
    <div>身份證號:<input type="text" id="age" /></div>
<br />
    <div><input type="button" id="dtn" value="提交" /></div>
</body>
<script type="text/javascript"> $("#dtn").click(function(){ var uid = $("#uid").val(); var pwd = $("#pwd").val(); var name = $("#name").val(); var email = $("#email").val(); var age = $("#age").val(); $.ajax({ url:"__CONTROLLER__/addchuli", data:{uid:uid,pwd:pwd,name:name,email:email,age:age}, dataType:"TEXT", type:"POST", success: function(data){ alert(data); } }); }); </script>
</html>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM