JQuery以JSON方式提交數(shù)據(jù)到服務(wù)端示例代碼
首先,在客戶(hù)端,通過(guò)JavaScript腳本將頁(yè)面表單數(shù)據(jù)封裝成JSON格式。GetJsonData()函數(shù)完成了這一功能。然后我們通過(guò)$.ajax()方法將數(shù)據(jù)發(fā)送到服務(wù)端的RequestData.ashx。其中用到了JSON.stringify()方法,它可以將客戶(hù)端發(fā)送的數(shù)據(jù)轉(zhuǎn)換成JSON對(duì)象,詳細(xì)的內(nèi)容可以看這里https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify
$("#btnSend").click(function() {
$("#request-process-patent").html("正在提交數(shù)據(jù),請(qǐng)勿關(guān)閉當(dāng)前窗口...");
$.ajax({
type: "POST",
url: "RequestData.ashx",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(GetJsonData()),
dataType: "json",
success: function (message) {
if (message > 0) {
alert("請(qǐng)求已提交!我們會(huì)盡快與您取得聯(lián)系");
}
},
error: function (message) {
$("#request-process-patent").html("提交數(shù)據(jù)失??!");
}
});
});
function GetJsonData() {
var json = {
"classid": 2,
"name": $("#tb_name").val(),
"zlclass": "測(cè)試類(lèi)型1,測(cè)試類(lèi)型2,測(cè)試類(lèi)型3",
"pname": $("#tb_contact_people").val(),
"tel": $("#tb_contact_phone").val()
};
return json;
}
再來(lái)看看服務(wù)端的代碼,RequestData.ashx.
[Serializable]
public class RequestDataJSON
{
public int classid { get; set; }
public string name { get; set; }
public string zlclass { get; set; }
public string pname { get; set; }
public string tel { get; set; }
}
/// <summary>
/// Summary description for RequestData
/// </summary>
public class RequestData : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
int num = 0;
context.Response.ContentType = "application/json";
var data = context.Request;
var sr = new StreamReader(data.InputStream);
var stream = sr.ReadToEnd();
var javaScriptSerializer = new JavaScriptSerializer();
var PostedData = javaScriptSerializer.Deserialize<RequestDataJSON>(stream);
tb_query obj = new tb_query();
obj.classid = PostedData.classid;
obj.name = PostedData.name;
obj.zlclass = PostedData.zlclass;
obj.pname = PostedData.pname;
obj.tel = PostedData.tel;
obj.ip = context.Request.UserHostAddress.ToString();
obj.posttime = DateTime.Now.ToString();
try
{
using (var ctx = new dbEntities())
{
ctx.tb_query.AddObject(obj);
num = ctx.SaveChanges();
}
}
catch (Exception msg)
{
context.Response.Write(msg.Message);
}
context.Response.ContentType = "text/plain";
context.Response.Write(num);
}
public bool IsReusable
{
get
{
return false;
}
}
}
定義一個(gè)帶有Serializable特征屬性的類(lèi)RequestDataJSON用來(lái)將客戶(hù)端數(shù)據(jù)進(jìn)行反序列化,從而獲取到數(shù)據(jù)并存入數(shù)據(jù)庫(kù)。上述代碼中使用了EntityFramework,從而使得數(shù)據(jù)庫(kù)的交互代碼變得很簡(jiǎn)潔。返回結(jié)果有兩種,對(duì)應(yīng)ajax中的回調(diào)函數(shù)success()和error()。在success()回調(diào)函數(shù)中,如果返回結(jié)果的值大于0,則表示通過(guò)EntityFramework添加到數(shù)據(jù)庫(kù)中的記錄數(shù);在error()回調(diào)函數(shù)中,返回結(jié)果則顯示了失敗的具體信息。
RequestData類(lèi)繼承了IHttpHandler接口,表明它是以同步的方式處理客戶(hù)端請(qǐng)求。當(dāng)然,你也可以將其改為繼承IHttpAsyncHandler接口來(lái)處理異步請(qǐng)求,代碼接口大同小異。
- 用js+xml自動(dòng)生成表格的東西
- 用js實(shí)現(xiàn)的一個(gè)根據(jù)內(nèi)容自動(dòng)生成表格的函數(shù)
- 用按鈕觸發(fā)Javascript動(dòng)態(tài)生成一個(gè)表格的代碼
- jQuery結(jié)合Json提交數(shù)據(jù)到Webservice,并接收從Webservice返回的Json數(shù)據(jù)
- js動(dòng)態(tài)生成指定行數(shù)的表格
- php jq jquery getJSON跨域提交數(shù)據(jù)完整版
- js使用數(shù)組判斷提交數(shù)據(jù)是否存在相同數(shù)據(jù)
- js生成動(dòng)態(tài)表格并為每個(gè)單元格添加單擊事件的方法
- JS控制網(wǎng)頁(yè)動(dòng)態(tài)生成任意行列數(shù)表格的方法
- JS實(shí)現(xiàn)動(dòng)態(tài)生成表格并提交表格數(shù)據(jù)向后端
相關(guān)文章
jQuery 插件實(shí)現(xiàn)隨機(jī)自由彈跳氣泡樣式
一個(gè)基于jQuery的氣泡動(dòng)畫(huà)插件,在指定區(qū)域上方(左/右)定時(shí)間隔產(chǎn)生氣泡,然后隨機(jī)水平速度進(jìn)行仿自由落體運(yùn)動(dòng)。這篇文章主要介紹了jQuery 插件實(shí)現(xiàn)隨機(jī)自由彈跳氣泡樣式的相關(guān)資料,需要的朋友可以參考下2017-01-01
完美JQuery圖片切換效果的簡(jiǎn)單實(shí)現(xiàn)
下面小編就為大家?guī)?lái)一篇完美JQuery圖片切換效果的簡(jiǎn)單實(shí)現(xiàn)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-07-07
jQuery自適應(yīng)輪播圖插件Swiper用法示例
這篇文章主要介紹了jQuery自適應(yīng)輪播圖插件Swiper用法,結(jié)合實(shí)例形式分析了jQuery輪播圖插件的功能與具體使用方法,需要的朋友可以參考下2016-08-08
使用easyui從servlet傳遞json數(shù)據(jù)到前端頁(yè)面的兩種方法
這篇文章主要介紹了用easyui從servlet傳遞json數(shù)據(jù)到前端頁(yè)面的兩種方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09
jQuery實(shí)現(xiàn)的頁(yè)面遮罩層功能示例【測(cè)試可用】
這篇文章主要介紹了jQuery實(shí)現(xiàn)的頁(yè)面遮罩層功能,結(jié)合完整實(shí)例形式詳細(xì)分析了jQuery遮罩層實(shí)現(xiàn)步驟與相關(guān)操作技巧,需要的朋友可以參考下2017-10-10
jquery html動(dòng)態(tài)添加的元素綁定事件詳解
下面小編就為大家?guī)?lái)一篇jquery html動(dòng)態(tài)添加的元素綁定事件詳解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-05-05
jQuery截取指定長(zhǎng)度字符串的實(shí)現(xiàn)原理及代碼
截取指定長(zhǎng)度字符串操作在新聞列表這種類(lèi)型的操作中大量應(yīng)用,下面有個(gè)示例,大家可以參考下2014-07-07
利用JQuery和Servlet實(shí)現(xiàn)跨域提交請(qǐng)求示例分享
這篇文章主要介紹了利用JQuery和Servlet實(shí)現(xiàn)跨域提交請(qǐng)求示例,需要的朋友可以參考下2014-02-02
JQuery的ajax獲取數(shù)據(jù)后的處理總結(jié)(html,xml,json)
三種數(shù)據(jù)格式中最簡(jiǎn)單的就是html格式,返回回來(lái)以后可以直接使用,上面的處理方式就是json的處理方式xml的處理方式。2010-07-07
jQuery-onload讓第一次頁(yè)面加載時(shí)圖片是淡入方式顯示
第一次打開(kāi)一個(gè)頁(yè)面時(shí),讓加載好的圖片先隱藏,然后再執(zhí)行動(dòng)畫(huà)fadeIn,這里的load事件:當(dāng)所有子元素已經(jīng)被完全加載完成時(shí),load事件被發(fā)送到這個(gè)元素2012-05-05

