欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > 基于Ajax表單提交及后臺處理簡單的應用

基于Ajax表單提交及后臺處理簡單的應用

熱門標簽:地圖標注項目怎么樣 云呼外撥網絡電話系統 硅語電話機器人公司 騰訊地圖標注位置能用多久 ai機器人電銷資源 越南河內地圖標注 機器人電銷騙局揭秘 個人怎樣在百度地圖標注地名 超級大富翁地圖標注

首先先說下表單提交吧,要提交表單那么就得先收集表單數據(至于驗證這個我就不說了,要說留下下次吧),有了jquery取個html的值還是簡單$("xxid").val()等就完了,但如果一張表單收集的數據很多,像這樣的表單又有很多張,那用此方法肯定麻煩死,并且容易眼花錄錯。所以,我們就可以簡單的來定義一個收集規則,如在要回傳到服務器的數據表單控件,可以做個標記,到時取的時候把這些標記的數據一起取回去。

 就拿最簡單的文體輸入做例子吧input type="text" id="txtcode" name="txtcode" datafield="Code" style="width: 200px" />我們加一個"datafield"屬性,存入的值為對應服務器相關類的屬性名。有了這標記前臺取數據就好辦了。

我們可以定個通用方法如下面代碼

getFormData: function(formid) {    
    var data = {};

    //獲取TEXT文件內容
    $("#" + formid + " input[type=text]").each(function(i, o) {
      var jo = $(o);
      if (jo.attr("datafield")) {
        var str = jo.val();
        str = str.replace(" ", "");
        if (str !== "") {          
          data[jo.attr("datafield")] = jo.val();
        }
      }
    });
    return data;
}

這里就是一個簡單的獲取表單里面所有text文本,并放入到一個data對象里面,至于其它表單控件值怎么取我就不多說了,原理差不多。

那么接下回就是把數據發到服務器上了,我這里就直接用jquery帶的ajax。

var save = function(sender) {     
      $(sender).prop("disabled", true); //禁用按鈕,防止重復發送
      var data = getFormData("form1");
      var jsonobj = { jsondata: data };
      var textdata = JSON.stringify(jsonobj);
      $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "xxxxx.aspx/Save",
        dataType: "json",
        data: textdata,
        success: function(msg) {
          if (msg.d == "1") {
            document.form1.reset();
            alert("保存成功!");           
          }
          else if (msg.d == "0") {
            alert("保存失敗!");
          }
        },
        complete: function(jqXHR, textStatus) {
          $(sender).prop("disabled", false); //還原按鈕
        }
      });
    }

這里的"xxxxx.aspx/Save"就是ajax處理頁面,其它就是一個webmethod。做了一下防止客戶手速太快,服務處理太慢,重復點擊的處理。

這樣一個表單數據收集,回傳服務器就完成了。這里使用json2.js的JSON.stringify方法統一將對象轉成json字符,好處就是不用自己為拼json字符串而考慮json的格式問題,簡單干凈。

那么客戶已經把數據收錄好了,服務器也該要處理數據了。我們從前臺來的數據的鍵(json的key),不可能全部包括某個數據類的所有屬性。并且數據類也有很多個,應該是哪一個類只有服務器才知道。所以這里我們就需要寫一個幫助的轉換類。這里又有問題,有可能數據類有很多個,難道我要為每一個類寫一個方法,那不是個坑么?所以我們分析下客戶端傳到服務端上的數據格式,它是一組鍵值對且不會重復,那么就相當于一個Dictionarystring, string>,后臺的類有很多種,那么至少我們能確定一個傳入參數了,傳出的就是相關類。相關類?到底是哪一類還只有到了具體后臺收集方法里才知道。那么,整理一下思路,現在有一個Dictionarystring, string>要變成一個數據類,數據類到底是什么有什么樣的屬性?搞不清,但這個Dictionarystring, string>的key(鍵)可以看做是這個數據類屬性集的一個子集,而這個Dictionarystring, string>的value(值)是這個數據類屬性值toString()的子集。那樣這樣就好辦了。屬性集怎么取?反射。這么多類到底是哪個?不管它,泛型解決。

說下這么多,貼下核心代碼

public static T1 UpdateObjectByDicT1>(T1 scrobj, IDictionarystring, string> sourceobject, bool ignoreCase)
     where T1 : new()
    {
      T1 result = scrobj;
      PropertyInfo[] pifresults = typeof(T1).GetProperties();
      foreach (var dic in sourceobject)
      {
        foreach (PropertyInfo pifresult in pifresults)
        {
          if (string.Compare(dic.Key, pifresult.Name, ignoreCase) == 0)
          {
           pifresult.SetValue(result, ChangeType(dic.Value, pifresult.PropertyType), null);
            break;
          }
        }
      }
      return result;
    }

    public static Object ChangeType(object value, Type targetType)
    {
      Type convertType = targetType;
      if (targetType.IsGenericType  targetType.GetGenericTypeDefinition().Equals(typeof(Nullable>)))
      {
        NullableConverter nullableConverter = new NullableConverter(targetType);
        convertType = nullableConverter.UnderlyingType;

      }
      return Convert.ChangeType(value, convertType);
    }

我這里T1 scrobj是把更新做在一起,如添加表單就傳個new的對象進來,如果是更新把單就把原表單數據傳進來。這里順帶說下ChangeType方法,其它就是數據類里有些屬性是nullable的(int? DateTime?等)傳統的Convert.ChangeType會有異常所以就簡單改了下,ignoreCase就是屬性(前臺那個datafield對應的值)查找是否處理大小寫(一般是不管大小寫的,要管大小寫相信會被前臺口水流淹死)。

這樣后臺數據處理核心就完了,調用部分代碼也貼下

[WebMethod(EnableSession = true)]
    public static string Save(Dictionarystring, string> jsondata)
    {
      string result = "0";
      Model.Project pro = ConvertHandle.UpdateObjectByDic Model.Project>(jsondata,new Model.Project,true);      
      pro.CreatorID = BLL.Sys_User.GetCurUser().ID.ToString();
      pro.CreatorName = BLL.Sys_User.GetCurUser().Name;    
      prohandle.Insert(pro);
      result = "1"; 
      return result;
    }

這里就是后臺具體處理方法調用的核心使用了,prohandle.Insert(pro)將類存入數據庫,pro.CreatorID,pro.CreatorName為項目的一些其它信息,這些就不說了。到這里一個表單前臺數據收集,后臺處理,除了保存那塊以外,就都算完了,呵呵。

文章最后說下,這里只是個簡單應用,像我說的這前臺收集,很多前臺js框架都已經早做了,考慮方面也比我這個全面得多,后臺處理我這是基于我這種前臺簡單收集弄的,很多第三方框架都有完整的體系了,但我這里說的只是一種簡單的思路,當你一時沒有那么多控件時是否能把這一條路簡單走通實現。當然我強烈建議不要重復造輪子,但要一定要明白輪子的核心作用和原理。

以上這篇基于Ajax表單提交及后臺處理簡單的應用就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • 提交表單最簡單的AJAX程序分享
  • jQuery使用$.ajax提交表單完整實例
  • Jquery.Form 異步提交表單的簡單實例
  • jquery實現ajax提交表單信息的簡單方法(推薦)

標簽:遼源 舟山 邢臺 林芝 鄭州 海南 內蒙古 洛陽

巨人網絡通訊聲明:本文標題《基于Ajax表單提交及后臺處理簡單的應用》,本文關鍵詞  基于,Ajax,表單,提交,及,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《基于Ajax表單提交及后臺處理簡單的應用》相關的同類信息!
  • 本頁收集關于基于Ajax表單提交及后臺處理簡單的應用的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    国产性做久久久久久| 蜜桃av噜噜一区| 成人免费看的视频| 免费成人深夜蜜桃视频| 2024国产精品| 久久99精品久久久久久| 中文字幕av网址| 日韩视频123| 美女视频黄免费的久久| 中文字字幕码一二三区| 日韩西西人体444www| 日韩在线一区二区| 色婷婷精品久久二区二区密| 欧美日韩三级视频| 亚洲永久精品国产| 91在线观看视频| 欧美综合视频在线观看| 亚洲理论在线观看| 免费国偷自产拍精品视频| 欧美性生活久久| 亚洲一二三区不卡| 99精品国产91久久久久久| 色www精品视频在线观看| 亚洲精品午夜久久久| 91在线看国产| 在线播放亚洲一区| 免费在线观看视频一区| 第一次破处视频| 中文乱码免费一区二区| 本田岬高潮一区二区三区| 欧美最新大片在线看| 午夜伦欧美伦电影理论片| 亚洲天堂2014| 91在线观看美女| 91精品国产综合久久婷婷香蕉| 轻轻草成人在线| 国产主播av在线| 亚洲人精品午夜| 岛国精品资源网站| 久久久不卡网国产精品二区| 成人影视亚洲图片在线| 欧美日韩中字一区| 毛片av一区二区三区| 亚洲 欧美 国产 另类| 亚洲欧美偷拍另类a∨色屁股| 色哟哟无码精品一区二区三区| 欧美一级在线免费| 国产麻豆精品在线| 日韩va亚洲va欧美va清高| 亚洲综合色噜噜狠狠| 人妻无码一区二区三区| 国产欧美日韩不卡免费| 91视频xxxx| 欧美成人伊人久久综合网| 高清beeg欧美| 欧美精品亚洲二区| 九九九精品视频| 日本妇女毛茸茸| 日韩二区三区在线观看| 亚洲欧美综合7777色婷婷| 一区二区三区av电影| 加勒比一区二区| 亚洲色图丝袜美腿| 国产精品第七页| 中文字幕日本乱码精品影院| 好吊一区二区三区视频| 亚洲国产精品精华液ab| 岛国精品一区二区三区| 久久久www成人免费无遮挡大片| 精品人妻一区二区三| 欧美zozo另类异族| 99久久久国产精品| 精品欧美黑人一区二区三区| 99re这里只有精品6| 精品卡一卡二卡三卡四在线| 9l国产精品久久久久麻豆| 日韩免费观看2025年上映的电影| 国产精品自在欧美一区| 欧美精品色综合| 成人精品亚洲人成在线| 欧美大黄免费观看| 91网站在线播放| 国产日产精品1区| 日本丰满少妇裸体自慰| 亚洲少妇屁股交4| 日本成人免费视频| 亚洲国产欧美另类丝袜| 亚洲一级生活片| 另类小说图片综合网| 欧美日韩一区二区在线观看 | 欧美国产日本韩| 超碰caoprom| 亚洲欧洲日本在线| 亚洲色图 激情小说| 视频一区视频二区中文字幕| 美国一区二区三区在线播放| 欧美裸体一区二区三区| 成人性生交大片免费看视频在线| 欧美成人性福生活免费看| 香蕉视频在线观看黄| 国产精品日韩成人| 亚洲图片另类小说| 日韩国产精品大片| 欧美色综合久久| 99久久精品国产一区二区三区| 久久综合九色综合欧美就去吻| 国产精品果冻传媒| 亚洲美女视频在线观看| 久久精品亚洲a| 久久成人精品无人区| 欧美裸体bbwbbwbbw| 韩国三级与黑人| 亚洲欧美日韩国产一区二区三区 | 在线免费观看日韩av| 亚洲午夜av在线| 欧美日韩中文另类| 91影视在线播放| 1区2区3区国产精品| 亚洲怡红院在线观看| 精品一区二区三区不卡| 日韩欧美在线影院| 亚洲第九十七页| 亚洲风情在线资源站| 色哟哟一区二区三区| 成人国产视频在线观看| 国产精品国产成人国产三级| 欧美美女性生活视频| 国产乱码精品一区二区三区五月婷| 欧美一卡二卡在线观看| 99久久免费看精品国产一区| 午夜视频一区二区三区| 7777精品伊人久久久大香线蕉| 久久久久无码国产精品一区李宗瑞| 一区二区三区精品久久久| 91精品福利视频| 中文字幕亚洲日本| 亚洲福利视频三区| 日韩一区二区在线观看视频播放| 欧美 变态 另类 人妖| 久热成人在线视频| 亚洲精品一区二区三区99| 日韩一区二区a片免费观看| 久久99热这里只有精品| 久久久久久久久久电影| 天堂av免费在线| 99精品桃花视频在线观看| 亚洲精品国久久99热| 欧美三区在线观看| 深田咏美中文字幕| 欧美a级理论片| 久久久久久久久久电影| 日韩福利小视频| 日本黄色www| 日韩av电影免费观看高清完整版| 精品国产乱码久久久久久久| 久草福利资源在线| www.99精品| 午夜欧美在线一二页| 日韩精品资源二区在线| 国产在线免费av| 不卡一区二区三区四区| 亚洲一区二区五区| 精品理论电影在线| 精品国产视频在线观看| 曰本三级日本三级日本三级| 日本sm残虐另类| 国产精品三级视频| 欧美撒尿777hd撒尿| theav精尽人亡av| 国产一区在线精品| 亚洲免费观看在线视频| 欧美一区中文字幕| 少妇高潮一区二区三区喷水| 99久久久久免费精品国产 | 人妻换人妻仑乱| 日韩影院免费视频| 国产欧美一区二区三区网站| 欧美在线999| 色婷婷av777| 99综合影院在线| 琪琪久久久久日韩精品| 国产精品午夜春色av| 欧美日韩久久一区| 国产肥白大熟妇bbbb视频| 波多野结衣视频一区| 日本午夜一本久久久综合| 日本一区二区成人在线| 制服丝袜中文字幕亚洲| 可以免费看av的网址| 911亚洲精选| 国产一区二区美女诱惑| 亚洲一区二区四区蜜桃| 国产亚洲精品bt天堂精选| 欧美日韩精品专区| 国产馆在线观看| 亚洲天堂2024| 国产91在线观看| 奇米影视一区二区三区| 亚洲欧美影音先锋| 精品国产麻豆免费人成网站|