1 thinkphp 框架 中判斷輸入的數(shù)值和數(shù)據(jù)庫中的數(shù)值是否一致
首先 需要在view文件夾下建一個(gè)模板 名為zhuce.html
<html><head> <script src="__ROOT__/Public/js/jquery-1.11.2.min.js"></script></head><body> <div> 賬號(hào):<input type="text" name="num" id="uid"></div> <div id="ts"></div></body></html>
我在控制器TextController.class.php中寫了一個(gè)方法zhuce(),顯示模板
function zhuce(){  $this->show();}這里需要用到ajax來寫的,首選需要引入jquery包 已經(jīng)在上面引入了
<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("此賬號(hào)已經(jīng)存在");          }        else          {             $("#ts").html("此賬號(hào)可用");          }      }})})</script>上面涉及到一個(gè)chuli方法,那么這兒我們要開始寫chuli方法了
function chuli(){   $n=D("login");   $num=$_POST["num"];   $aa=$n->where("num='{$num}'")->count();    $this->ajaxReturn($aa,"eval");}這樣就可以來判斷這個(gè)賬號(hào)是不是可以使用了,但是我們會(huì)發(fā)現(xiàn)有一個(gè)小bug,就是如果是空的話,那么會(huì)顯示此賬號(hào)可以使用,為了避免出現(xiàn)這樣的失誤,我們可以在js中 判斷一下是不是為空 if(num.trim()==""){$("#ts").html("賬號(hào)不可以為空")} else{執(zhí)行ajax部分的內(nèi)容就可以了}
2 驗(yàn)證方法:
首先是判斷不為空的方法,這里可以直接用js來寫是非常簡(jiǎn)單的,用的是nation表 我在view文件夾下寫了一個(gè)jsdongtai.html的文件,
<html><head> <script src="__ROOT__/Public/js/jquery-1.11.2.min.js"></script></head><body> <div> 代號(hào):<input type="text" id="code"/> <span id="ts"></span> </div></body></html>
然后就是判斷代號(hào)是否為空
<script type="text/javascript">  $("#code").blur(function(){   var code=$(this).val();   if(code.trim()=="")   {     $("#ts).html("代號(hào)不能為空");   }   else  {    $("#ts").html("驗(yàn)證通過");  }})</script>然后用jsdongtai方法調(diào)一下就可以了 function jsdongtai(){$this->show();}
如果我們用ajax來調(diào)的話可能比較麻煩,但是對(duì)于其他的驗(yàn)證來說要方便的多了,我們可以在方法里面添加多個(gè)驗(yàn)證
比如我們用一個(gè)dongtai.html的模板 和jsdongtai.html的html部分是一樣的,這樣我們就只需要寫ajax部分就可以了
<script type="text/javascript"> $("#code").blur(function(){   var code=$(this).val();   $.ajax({     url:"__CONTROLLER__/yanzheng",     data:{code:code},//第一個(gè)code必須是和表中的一致    type:"POST",    dataType:"TEXT",     success:function(data)      {        if(data.trim()=="1")          {            $("#ts").html("驗(yàn)證通過"),          }          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")       }}在我們平時(shí)做驗(yàn)證的時(shí)候,很少會(huì)用ajax,相對(duì)來說比較麻煩,我們用簡(jiǎn)單的js就可以完成的,比如我做一個(gè)關(guān)于郵箱的驗(yàn)證,在jsdongtai.html中加入這一句
<div><input type="text" id="email"/><span id="aa"></span></div>
然后我們開始做郵箱的驗(yàn)證了,我用的js都是引入的jquery包,前面已經(jīng)引入過了,這里就不再詳說了
<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("郵箱驗(yàn)證成功");    }})</script>新聞熱點(diǎn)
疑難解答
圖片精選