首頁 web前端 js教程 jquery ajax json 综合应用实例

jquery ajax json 综合应用实例

Jun 01, 2016 am 09:54 AM
ajax jquery json

通过AJAX异步减少网络内容传输,而JSON则可以把传输内容缩减到纯数据;然后利用jQuery内置的AJAX功能直接获得JSON格式的数据;在客户端直接绑定到数据控件里面,从而达到最优。

1.设计htm页面

<code class="html"> 
 
 
<title>test2</title> 
<script language="javascript" type="text/javascript" src="js/jquery-latest.pack.js"></script> 
<script language="javascript" type="text/javascript" src="js/PageDate.js"></script> 
  
 
 
<div> 
<div> 
<br> 
<input id="first" type="button" value=" << "><input id="previous" type="button" value=" < "><input id="next" type="button" value=" > "><input id="last" type="button" value=" >> "> 
 <span id="pageinfo"></span> 
<ul id="datas"> 
<li id="template"> 
<span id="OrderID"> 
订单ID 
</span>/ 
<span id="CustomerID"> 
客户ID 
</span> 
<span id="EmployeeID"> 
雇员ID 
</span>/ 
<span id="OrderDate"> 
订购日期 
</span>/ 
<span id="ShippedDate"> 
发货日期 
</span>/ 
<span id="ShippedName"> 
货主名称 
</span>/ 
<span id="ShippedAddress"> 
货主地址 
</span>/ 
<span id="ShippedCity"> 
货主城市 
</span>/ 
<span id="more"> 
更多信息 
</span> 
</li> 
</ul> 
</div> 
<div id="load" style="left: 0px; position: absolute; top: 0px; background-color: red"> 
LOADING.... 
</div> 
<input type="hidden" id="pagecount"> 
</div> 
 
 
////注:ID属性比较重要,用于数据绑定。</code>
登入後複製

 

2.使用jQuery编写AJAX请求文件

<code class="javascript">var pageIndex = 1
var pageCount = 0;

$(function() {
    GetPageCount(); //取得分页总数 
    pageCount = parseInt($("#pagecount").val()); //分页总数放到变量pageCount里 
    $("#load").hide(); //隐藏loading提示 
    $("#template").hide(); //隐藏模板 
    ChangeState(0, 1); //设置翻页按钮的初始状态 
    bind(); //绑定第一页的数据 
    //第一页按钮click事件 
    $("#first").click(function() {
        pageIndex = 1;
        ChangeState(0, 1);
        bind();
    });

    //上一页按钮click事件 
    $("#previous").click(function() {
        pageIndex -= 1;
        ChangeState( - 1, 1);
        if (pageIndex = pageCount) {
            pageIndex = pageCount;
            ChangeState( - 1, 0);
        }
        bind(pageIndex);
    });

    //最后一页按钮click事件 
    $("#last").click(function() {
        pageIndex = pageCount;
        ChangeState(1, 0);
        bind(pageIndex);
    });
});

//AJAX方法取得数据并显示到页面上 
function bind() {
    $("[@id=ready]").remove();
    $("#load").show();
    $.ajax({
        type: "get",
        //使用get方法访问后台 
        dataType: "json",
        //返回json格式的数据 
        url: "Handler.ashx",
        //要访问的后台地址 
        data: "pageIndex=" + pageIndex,
        //要发送的数据 
        complete: function() {
            $("#load").hide();
        },
        //AJAX请求完成时隐藏loading提示 
        success: function(msg) { //msg为返回的数据,在这里做数据绑定 
            var data = msg.table;
            $.each(data,
            function(i, n) {
                var row = $("#template").clone();
                row.find("#OrderID").text(n.OrderID);
                row.find("#CustomerID").text(n.CustomerID);
                row.find("#EmployeeID").text(n.EmployeeID);
                row.find("#OrderDate").text(ChangeDate(n.OrderDate));
                if (n.RequiredDate !== undefined) row.find("#ShippedDate").text(ChangeDate(n.RequiredDate));
                row.find("#ShippedName").text(n.ShipName);
                row.find("#ShippedAddress").text(n.ShipAddress);
                row.find("#ShippedCity").text(n.ShipCity);
                row.find("#more").html("<a href="OrderInfo.aspx?id=%22" n.orderid pageindex> More</a>");
                row.attr("id", "ready"); //改变绑定好数据的行的id 
                row.appendTo("#datas"); //添加到模板的容器中 
            });
            $("[@id=ready]").show();
            SetPageInfo();
        }
    });
}

function ChangeDate(date) {
    return date.replace("-", "/").replace("-", "/");
}

//设置第几页/共几页的信息 
function SetPageInfo() {
    $("#pageinfo").html(pageIndex + "/" + pageCount);
}

//AJAX方法取得分页总数 
function GetPageCount() {
    $.ajax({
        type: "get",
        dataType: "text",
        url: "Handler.ashx",
        data: "getPageCount=1",
        async: false,
        success: function(msg) {
            $("#pagecount").val(msg);
        }
    });
}

//改变翻页按钮状态 
function ChangeState(state1, state2) {
    if (state1 == 1) {
        document.getElementById("first").disabled = "";
        document.getElementById("previous").disabled = "";
    } else if (state1 == 0) {
        document.getElementById("first").disabled = "disabled";
        document.getElementById("previous").disabled = "disabled";
    }
    if (state2 == 1) {
        document.getElementById("next").disabled = "";
        document.getElementById("last").disabled = "";
    } else if (state2 == 0) {
        document.getElementById("next").disabled = "disabled";
        document.getElementById("last").disabled = "disabled";
    }
}</code>
登入後複製

 

3.利用JSON三方控件在服务器端获取JSON格式数据 

<code class="cs"> 
  
using System; 
using System.Data; 
using System.Web; 
using System.Collections; 
using System.Web.Services; 
using System.Web.Services.Protocols; 
using System.Configuration; 
using System.Data.SqlClient; 
using System.Text; 
using System.Xml; 
using NetServ.Net.Json; 
  
namespace jQueryJSON 
{ 
/// <summary> 
/// $codebehindclassname$ 的摘要说明 
/// </summary> 
[WebService(Namespace = "http://tempuri.org/json/")] 
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
public class Handler : IHttpHandler 
{ 
readonly int PageSize = int.Parse(ConfigurationManager.AppSettings["PageSize"]); 
public void ProcessRequest(HttpContext context) 
{ 
context.Response.ContentType = "text/plain"; 
//不让浏览器缓存 
context.Response.Buffer = true; 
context.Response.ExpiresAbsolute = DateTime.Now.AddDays(-1); 
context.Response.AddHeader("pragma", "no-cache"); 
context.Response.AddHeader("cache-control", ""); 
context.Response.CacheControl = "no-cache"; 
  
string result = ""; 
if (context.Request.Params["getPageCount"] != null) result = GetPageCount(); 
if (context.Request.Params["pageIndex"] != null) 
{ 
string pageindex = context.Request.Params["pageIndex"]; 
result = GetPageData(context.Request.Params["pageIndex"]); 
} 
context.Response.Write(result); 
} 
  
private string GetPageData(string p) 
{ 
int PageIndex = int.Parse(p); 
string sql; 
if (PageIndex == 1) 
sql = "select top " + PageSize.ToString() + " * from Orders order by OrderID desc"; 
else
sql = "select top " + PageSize.ToString() + " * from Orders where OrderID not in(select top " + ((PageIndex - 1) * PageSize).ToString() + " OrderID from Orders order by OrderID desc) order by OrderID desc"; 
string dbfile = ConfigurationManager.ConnectionStrings["conn"].ToString(); 
SqlConnection conn = new SqlConnection(dbfile); 
SqlDataAdapter da = new SqlDataAdapter(sql, conn); 
DataTable dt = new DataTable("table"); 
da.Fill(dt); 
return DataTableJson(dt); 
  
} 
  
private string GetPageCount() 
{ 
string dbfile = ConfigurationManager.ConnectionStrings["conn"].ToString(); 
SqlConnection conn = new SqlConnection(dbfile); 
SqlCommand cmd = new SqlCommand("select count(*) from Orders", conn); 
conn.Open(); 
int rowcount = Convert.ToInt32(cmd.ExecuteScalar()); 
conn.Close(); 
return ((rowcount + PageSize - 1) / PageSize).ToString(); 
} 
  
private string DataTable2Json(DataTable dt) 
{ 
StringBuilder jsonBuilder = new StringBuilder(); 
jsonBuilder.Append("{\""); 
jsonBuilder.Append(dt.TableName); 
jsonBuilder.Append("\":["); 
for (int i = 0; i </code>
登入後複製

以上是jquery ajax json 综合应用实例。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PHP 數組轉 JSON 的效能最佳化技巧 PHP 數組轉 JSON 的效能最佳化技巧 May 04, 2024 pm 06:15 PM

PHP數組轉JSON的效能最佳化方法包括:使用JSON擴充和json_encode()函數;新增JSON_UNESCAPED_UNICODE選項以避免字元轉義;使用緩衝區提高循環編碼效能;快取JSON編碼結果;考慮使用第三方JSON編碼庫。

Jackson庫中註解如何控制JSON序列化和反序列化? Jackson庫中註解如何控制JSON序列化和反序列化? May 06, 2024 pm 10:09 PM

Jackson庫中的註解可控制JSON序列化和反序列化:序列化:@JsonIgnore:忽略屬性@JsonProperty:指定名稱@JsonGetter:使用獲取方法@JsonSetter:使用設定方法反序列化:@JsonIgnoreProperties:忽略屬性@ JsonProperty:指定名稱@JsonCreator:使用建構子@JsonDeserialize:自訂邏輯

PHP 與 Ajax:建立一個自動完成建議引擎 PHP 與 Ajax:建立一個自動完成建議引擎 Jun 02, 2024 pm 08:39 PM

使用PHP和Ajax建置自動完成建議引擎:伺服器端腳本:處理Ajax請求並傳回建議(autocomplete.php)。客戶端腳本:發送Ajax請求並顯示建議(autocomplete.js)。實戰案例:在HTML頁面中包含腳本並指定search-input元素識別碼。

如何使用Ajax從PHP方法取得變數? 如何使用Ajax從PHP方法取得變數? Mar 09, 2024 pm 05:36 PM

使用Ajax從PHP方法取得變數是Web開發中常見的場景,透過Ajax可以實作頁面無需刷新即可動態取得資料。在本文中,將介紹如何使用Ajax從PHP方法中取得變量,並提供具體的程式碼範例。首先,我們需要寫一個PHP檔案來處理Ajax請求,並傳回所需的變數。下面是一個簡單的PHP檔案getData.php的範例程式碼:

深入了解PHP:JSON Unicode轉中文的實作方法 深入了解PHP:JSON Unicode轉中文的實作方法 Mar 05, 2024 pm 02:48 PM

深入了解PHP:JSONUnicode轉中文的實作方法在開發中,我們經常會遇到需要處理JSON資料的情況,而JSON中的Unicode編碼在一些場景下會為我們帶來一些問題,特別是當需要將Unicode編碼轉換為中文字元時。在PHP中,有一些方法可以幫助我們實現這個轉換過程,以下將介紹常用的方法,並提供具體的程式碼範例。首先,讓我們先來了解一下JSON中Un

PHP 與 Ajax:建立動態載入內容的解決方案 PHP 與 Ajax:建立動態載入內容的解決方案 Jun 06, 2024 pm 01:12 PM

Ajax(非同步JavaScript和XML)允許在不重新載入頁面情況下新增動態內容。使用PHP和Ajax,您可以動態載入產品清單:HTML建立一個帶有容器元素的頁面,Ajax請求載入資料後將資料加入到該元素中。 JavaScript使用Ajax透過XMLHttpRequest向伺服器傳送請求,從伺服器取得JSON格式的產品資料。 PHP使用MySQL從資料庫查詢產品數據,並將其編碼為JSON格式。 JavaScript解析JSON數據,並將其顯示在頁面容器中。點選按鈕觸發Ajax請求,載入產品清單。

PHP 數組轉 JSON 的快捷技巧 PHP 數組轉 JSON 的快捷技巧 May 03, 2024 pm 06:33 PM

PHP陣列可透過json_encode()函數轉換為JSON字串(例如:$json=json_encode($array);),反之亦可用json_decode()函數從JSON轉換為陣列($array=json_decode($json);) 。其他技巧還包括:避免深度轉換、指定自訂選項以及使用第三方程式庫。

PHP教學:如何將JSON Unicode轉換為中文字符 PHP教學:如何將JSON Unicode轉換為中文字符 Mar 05, 2024 pm 06:36 PM

JSON(JavaScriptObjectNotation)是一種輕量級的資料交換格式,通常用於Web應用程式之間的資料交換。在處理JSON資料時,我們經常會遇到Unicode編碼的中文字元(例如"u4e2du6587"),需要將其轉換為可讀的中文字元。在PHP中,我們可以透過一些簡單的方法來實現這個轉換。接下來,我們將詳細介紹如何將JSONUnico

See all articles