1. 程式人生 > >thinkphp框架中jquery $.post()用法詳解

thinkphp框架中jquery $.post()用法詳解

8描述:

獲得 test.php 頁面返回的 json 格式的內容::

jQuery 程式碼:
$.post("test.php", { "func": "getNameAndTime" },
   function(data){
     alert(data.name); // John
     console.log(data.time); //  2pm
   }, "json");
返回資料型別若為json格式,則對應方法echo json_encode(data);

案例:

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function index(){
       $this->display();
    }
    public function test()
    {
        $account=I('post.account');
        $user="dalei";
        echo $account.".".$user;
    }

}

//

 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <title>Document</title>
 </head>

 <body>
 使用者名稱:<input type="text" id="uName" class="uName">
 <p></p>
 <a></a>
<script type="text/javascript" src="__PUBLIC__/jquery-1.8.2.min.js"></script>

<script>
window.onload=function()
{
    alert("載入成功!");
}
$(document).ready(function(){
    $('#uName').blur(function(){
        var account=1;
        $.post("__URL__/test", { "account": account },function(data){

            // alert(data);
            var list=data.split(".");
            var a=list[0];
            var b=list[1];
            $("p").html(a);
            $("a").html(b);
            // document.write(data.split("."));
        },"text");


     
    })
})

</script>



前端js寫法:

<script src="/m/Public/js/jquery.js"></script>

<script>

$(function(){

$('#uName').blur(function(){

   var account=$('#uName').val();

if(account==''){

 $('.uName').html('請輸入使用者名稱');

 return false;

}

if(account.length<5 ||account.length>=16){

 $('.uName').html('使用者名稱長度必須在5-16位之間');

  $('.uName').css('color','red');

 return flase;

}

$.post('__URL__/checkAccount',{'account':account},function(data){   //__URL__/checkAccount

不可寫成U(")方式,可用原生天“index.php/Home/控制器/方法”

                 if(data==1){

    $('.uName').html('該使用者名稱已註冊');

}else{

$('.uName').html('恭喜,此使用者名稱可以使用。');

$('.uName').css('color','green');


}

 })

})

$('input[type=password]').blur(function(){

  if($(this).is('#uPwd')){

 if($(this).val()==''){ $('.uPwd').html('請輸入密碼'); }

  if($(this).val().length<5 || $(this).val().length>=16){

    $('.uPwd').html('密碼長度必須在5-16位之間');

  }else{

    $('.uPwd').html('密碼正確');

$('.uPwd').css({'color':'green','fontSize':'14px'});

  }

   }

if($(this).is('#uPwd1')){

 if($(this).val()==''){ $('.uPwd1').html('請輸入確認密碼');}

 if($(this).val().length<5 || $(this).val().length>=16){

    $('.uPwd1').html('密碼長度必須在5-16位之間');

  }else{

    if($('#uPwd').val()!=$('#uPwd1').val()){

  $('.uPwd1').html('兩次密碼不一致');

 }else{

 $('.uPwd1').html('密碼正確');

                  $('.uPwd1').css({'color':'green','fontSize':'14px'});

 }

  }

   }

})

  $('#email').blur(function(){

         var email=$('#email').val();

var reg=/^[a-z0-9](\w|\.|-)*@\w{2,}\.(com|cn|net|com.cn|net.cn)$/i;

         if(!reg.test(email)){

   $('.email').html('郵箱格式不正確');

   $('.email').css({'color':'red','fontSize':'14px'});

return false;

 }else{

   $('.email').html('郵箱正確');

$('.email').css({'color':'green','fontSize':'14px'});

 }

 $.post('__URL__/checkEmail',{'email':email},function(data){

 if(data==1){

   $('.email').html('郵箱已註冊');

   $('.email').css({'color':'red','fontSize':'14px'});

return false;

 }

 })

  })

})   

 $(function(){

$('#phone').blur(function(){

   var phone=$('#phone').val();   

/*   var reg=/^1[3458]\d{9}$/;

if(!reg.test(phone)){

$('.phone').html('手機號碼格式不正確');

$('.phone').css({'color':'red','fontSize':'14px'});

 return false;

}else{

$('.phone').html('手機號碼正確');

$('.phone').css({'color':'green','fontSize':'14px'});

}*/

   $.post('__URL__/phone',{'phone':phone},function(data){

        alert(data);

if(data==1){

            $('.phone').html('手機號碼已註冊');

$('.phone').css({'color':'red','fontSize':'14px'});

return false;

}

    })

})

  $('#userLogin').click(function(){

var account=$('#uName').val();

var uPwd=$('#uPwd').val();

var uPwd1=$('#uPwd1').val();

var email=$('#email').val();

var phone=$('#phone').val();

if(account==''){$('.uName').html('請輸入使用者名稱'); return false;}

if(uPwd==''){$('.uPwd').html('請輸入使用者密碼'); return false; }

if(uPwd1==''){$('.uPwd1').html('請輸入確認密碼'); return false; }

if(email==''){$('.email').html('請輸入電子郵箱'); return false; }

if(phone==''){$('.phone').html('請輸入手機號碼'); return false; }

$.post('__URL__/reg',{'account':account,'password':uPwd,'email':email,'phone':phone},function(data){

        if(data==1){

 alert('註冊成功');

 window.location.href='__APP__/Member/User/index';

 return false;

}else if(data==2){

alert('註冊失敗');

return false;

}

})

  })

})

</script>

對應控制器寫法:

thinkphp jquery與ajax使用者登錄檔單驗證

例項:thinkphp jquery與ajax實現使用者登錄檔單驗證

步驟:

1,檢測使用者名稱是否已註冊。

2,對郵箱進行檢測是否已被註冊過。

3,對手機號碼進行檢測是否已被註冊過。

4,分別對這三個表單框新增失去焦點的事件。

5,最後,當點選新使用者註冊時,對所有文字控制元件的值判斷是否為空,為空則不允許提交。

<?php

 UserAction extends Action{

  public function reg(){

     if(IS_POST){

        if(M('member')->data($_POST)->add()){

          echo 1;

        }else{

         echo 2;

        }

    }

     $this->display();

   }

   public function checkAccount(){

     $account=I('post.account');

      $list=M('member')->where(array('account'=>$account))->select();

     $list=$list[0];

     if(!empty($list)){

       echo 1;

     }

   }

   public function checkEmail(){

    $email=I('post.email');

    $list=M('member')->where(array('email'=>$email))->select();

    $list=$list[0];

        if(!empty($list)){

      echo 1;

    }

   }

   public function phone(){    

    $phone=I('post.phone');

    $list=M('member')->where(array('phone'=>$phone))->select();

         $list=$list[0];

         if(!empty($list)){

      echo 1;

    }

       }

}

?>