標籤:trim create 檔案夾 ret 執行 put head public date
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_-])[email protected]([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/; if(email.match($zz)==null) { $("#aa").html("郵箱格式不正確"); } else { $("#aa").html("郵箱驗證成功"); }})</script>
thinkphp 架構中的一部分方法解析