Ajax 概念 分析 舉例

Ajax是結合了訪問數據庫,數據訪問,Jquery 能夠作頁面局部刷新或者說是頁面不刷新,我可讓頁面不刷新,僅僅是數據的刷新,沒有頻繁的刷頁面,是如今比較經常使用的一種方式作頁面
那麼它是怎麼實現頁面無刷新的呢?接下來咱們一塊兒看下原理javascript

先看下以前咱們刷新頁面的方式原理php

 

再看下Ajax的原理css

Ajax最大的特色就是這個頁面總體上所有使用的是JS 腳本語言或者是Jquery都行,這倆都是前端的語言,運行的時候不須要到服務器端運行,只要在瀏覽器下就能夠執行,因此Ajax就利用了這一點,使用Jquery,JS來操做前端頁面的數據。前端

好比說:作一個查詢,我須要先取出用戶給的數據,我JS取出來,而後發送到一個地方去,讓另一個地方去處理,處理完後返回給我。而後JS拿這個數據把內容替換掉,因此全部的工做都是拿JS完成的java

 

 

 

這種模式執行的時候就不會有頁面的刷新,由於這個頁面沒有從新請求,這個頁面裏僅僅變的是數據jquery

接下來咱們看一下Ajax怎麼來實現ajax

舉例:判斷用戶名是否在數據庫裏面存在sql

通常ajax是用Jquery來寫,首先咱們先給Uid這個文本框加一個事件blur(失去焦點觸發),接着取用戶名,從數據庫查,看是否能查到。取到用戶名後下一步咱們就要查數據庫,JS不能直接查,因此調ajax!!$.ajax()這是一個方法!!數據庫

調這個方法的時候須要傳一個參數,這個參數須要是JSON數據格式瀏覽器

JSON裏面用逗號分割,不是分號

第一個參數就是url表明的是把數據傳到哪一個頁面處理,頁面的地址是什麼

第二個參數就是data表明的是我調用testchuli.php的時候我要傳遞什麼數據給它,要求也是一個JSON格式,花括號裏你傳幾條數據就寫幾個值,如今咱們要傳一個

{名字 u : 傳哪一個值 uid}冒號前面的就是個名字,冒號後邊的會解析變量

第三個參數就是type表明的是傳值的方式

第四個參數就是dataType 注意 T 要大寫表明是返回數據的格式,

若是寫XML返回數據類型必須是XML,若是寫JSON返回數據類型必須是JSON

若是寫TEXT返回數據必須是字符串 都是大寫

第五個參數就是success表明的是成功,當處理頁面執行成功以後,必須跟個匿名函數

匿名函數裏面必須有個參數,這個方法有個名詞叫 回調函數

<script src="jquery-1.11.2.min.js"></script>
<style type="text/css">


</style>
</head>

<body>
<input type="text" id="uid"/>
<span id="tishi"></span>
</body>
<script type="text/javascript">
$("#uid").blur(function(){
         //取用戶名
         var uid = $(this).val();
         //查數據庫,調ajax
         $.ajax({
                 url:"testchuli.php",//處理頁面地址
                 data:{u:uid},//要傳遞的數據(提交)
                 type:"POST", //提交方式
                 dataType:"TEXT", //返回數據格式
                 success:function(data){   //回調函數
                           var str = "";
            
                           if(data=="OK")
                           {
                              str = "該用戶名可用";
                              $("#tishi").css("color","green");
                           }
                           else
                           {
                               str = "該用戶名存在";
                               $("#tishi").css("color","red");
                           }
                           $("#tishi").text(str);
                     
                     }
             
             })
    
    })

    
</script>

 

 

 

 接下來咱們作一下處理頁面

 

<?php
include("FZL.class.php");
$db = new FZL();

$uid = $_POST["u"];
$sql = "select count(*) from login where username='{$uid}'";

$attr = $db->Query($sql);

if($attr[0][0]>0)
{
    echo "NO";
}
else
{
    echo "OK";
}

 

再作一個登陸的練習:

 

<script src="jquery-1.11.2.min.js"></script>
<style type="text/css">


</style>
</head>

<body>
<div>帳號:<input type="text" id="uid"/></div>
<div>密碼:<input type="password" id="pwd"/></div>
<input type="button" value="登陸" id="btn" />

</body>
<script type="text/javascript">
$("#btn").click(function(){
        //取用戶名和密碼
        var uid = $("#uid").val();
        var pwd = $("#pwd").val();
        //調ajax
        $.ajax({
              url:"logincl.php",
              data:{u:uid,p:pwd},
              type:"POST",
              dataType:"TEXT",
              success: function(data){
                      if(data.trim()=="OK")
                      {
                          window.location.href="test.php";
                      }
                      else
                      {
                          alert("用戶名或密碼錯誤");
                      }
                  }
            });
    
    })
         
</script>

 

再作一下處理頁面

 

<?php
include("FZL.class.php");
$db = new FZL();
$uid = $_POST["u"];
$pwd = $_POST["p"];

$sql = "select count(*) from login where username='{$uid}'";
$attr = $db->Query($sql);
if(!empty($pwd) && !empty($attr) && $attr[0][0]==$pwd)
{
    echo "OK";    
}
else
{
    echo "NO";
}

 

 

 

 

經過最近的練習你們好出錯的地方除了字母拼寫,字母大小寫,空格,符號容易出現錯誤,重要的還有文件路徑,因此養成良好的整理文件路徑也很重要

相關文章
相關標籤/搜索