首页 > 编程 > JavaScript > 正文

jQuery购物车插件jsorder用法(支持后台处理程序直接转换成DataTable处理)

2019-11-20 09:45:35
字体:
来源:转载
供稿:网友

本文实例讲述了jQuery购物车插件jsorder用法。分享给大家供大家参考,具体如下:

<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=GB18030"/><title></title><script type="text/javascript" src="../js/jquery-1.9.1.min.js" ></script><link href="./demo.css" rel="stylesheet"/><link href="../css/order.css" rel="stylesheet"/><script type="text/javascript" src="../js/cookie.js" ></script><script type="text/javascript" src="../js/jsorder.1.1.js" ></script></head><body>  <h1>JSORDER 案例</h1>  <table><tr><td colspan="3" align="left">案例一:我的菜单(点击菜名即可加入菜单)</td></tr><tr>      <td class="jsorderadd" id="80001" productid="80001" price="12" jsordername="红烧豆腐">红烧豆腐 12元</td>      <td class="jsorderadd" id="80002" productid="80002" price="32" jsordername="毛血旺">毛血旺 32元</td>      <td class="jsorderadd" id="80003" productid="80003" price="18" jsordername="套餐:京酱肉丝+2米饭 18元">套餐:京酱肉丝+2米饭 18元</td></tr></table>  <div id="result"></div></body></html><script type="text/javascript">//jsorder配置  $.fn.jsorder.defaults = {    staticname: 'jsorder',    jsorderclass: 'jsorder',    savecookie: true,    cookiename: 'jsorder',    numpre: 'no_',    jsorderpre: 'jsorder_',    jsorderspanpre: 'jsorderspan_',    pricefiled: 'price',    namefiled: 'jsordername',    leftdemo: '我的菜单',    subbuttom: '',    //addbuttom : 'a.jsorderadd',    addbuttom: 'td.jsorderadd',    nomessage: '你今天的食谱是还空的',    dosubmit: function (data) {      alert(JSON.stringify(data));      //$("#result").html("json内容:" + JSON.stringify(data)).css('background', '#e0e0e0');      jsonAjax("ShoppingCar.ashx", JSON.stringify(data), "text", getsuccess);    }  };$("body").jsorder();function jsonAjax(url, param, datat, callback) {  $.ajax({    type: "post",    url: url,    data: param,    dataType: datat,    success: callback,    error: function () {      jQuery.fn.mBox({        message: '恢复失败'      });    }  });};function getsuccess(o) {  //alert(o);  //成功后操作}</script>
<%@ WebHandler Language="C#" Class="ShoppingCar" %>using System;using System.Web;using System.Data;using System.Web.Script.Serialization;using System.Collections.Generic;using System.Collections;using System.IO;public class ShoppingCar : IHttpHandler{  public void ProcessRequest(HttpContext context)  {    context.Response.ContentType = "text/plain";    StreamReader reader = new StreamReader(context.Request.InputStream);    string jsonString = HttpUtility.UrlDecode(reader.ReadToEnd());    if (MSCL.Until.IsNullOrDBNull(jsonString))    {      context.Response.Write("error");    }    else    {      jsonString = "{/"goods/": [" + jsonString + "]}";      DataSet ds = JsonToDataSet(jsonString); //获取的购物车商品列表      context.Response.Write("ok");    }    context.Response.End();  }  #region 解析Json成DataTable  /// <summary>  /// 解析Json成DataTable  /// </summary>  /// <param name="Json">Json字符串</param>  /// <returns></returns>  public static DataSet JsonToDataSet(string Json)  {    try    {      DataSet ds = new DataSet();      DataTable dt = new DataTable("shoppingcar");      JavaScriptSerializer JSS = new JavaScriptSerializer();      object obj = JSS.DeserializeObject(Json);      Dictionary<string, object> datajson = (Dictionary<string, object>)obj;      foreach (var item in datajson)      {        object[] rows = (object[])item.Value;        foreach (var row in rows)        {          Dictionary<string, object> valneed = (Dictionary<string, object>)row;          foreach (var needrow in valneed.Values)          {            #region            Dictionary<string, object> val = (Dictionary<string, object>)needrow;            DataRow dr = dt.NewRow();            foreach (KeyValuePair<string, object> sss in val)            {              if (!dt.Columns.Contains(sss.Key))              {                dt.Columns.Add(sss.Key.ToString());                dr[sss.Key] = sss.Value;              }              else                dr[sss.Key] = sss.Value;            }            dt.Rows.Add(dr);            #endregion          }        }      }      ds.Tables.Add(dt);      return ds;    }    catch    {      return null;    }  }  #endregion  public bool IsReusable  {    get    {      return false;    }  }}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>  <title>读取本地购物车Cookie</title>  <script type="text/javascript" src="../js/jquery-1.9.1.min.js" ></script>  <link href="./demo.css" rel="stylesheet"/>  <link href="../css/order.css" rel="stylesheet"/>  <script type="text/javascript" src="../js/cookie.js" ></script>  <script type="text/javascript" src="../js/jsorder.1.1.js" ></script>  <script type="text/javascript">    //初始化配置    var staticname = 'jsorder';    var jsorderpre = 'jsorder_';    var html = "";    $(function () {      if ($.cookie(staticname) != null && $.cookie(staticname) != '{}') {        $("#list").html("");        initdata = eval('(' + $.cookie(staticname) + ')'); //序列化成数组        $("body").data(staticname, initdata);        //alert(JSON.stringify(initdata));        $.each(initdata, function (index, item) {          //循环获取数据          var Id = initdata[index]["productid"];          var Name = initdata[index]["name"];          var Price = initdata[index]["price"];          var Count = initdata[index]["count"];          var innerhtml = "<li id='" + jsorderpre + Id + "'>";          innerhtml += Id + "--" + Name + "--" + Price + " ";          innerhtml += "<a href='javascript:void(0)' style='text-decoration:none;' onclick='subnum(" + Id + ")'> - </a><span id='count" + Id + "' >" + Count;          innerhtml += "</span><a href='javascript:void(0)' style='text-decoration:none;' onclick='addnum(" + Id + ")'> + </a>";          innerhtml += "</li>"          html += innerhtml;        });        $("#list").append(html);      }    });    function subnum(id) {      var datejsorder = $("body").data(staticname);      datejsorder[id]['count'] -= 1;      if (datejsorder[id]['count'] > 0) {        $("#count" + id).html(datejsorder[id]['count']);      } else {        $("#" + jsorderpre + id).remove();        delete datejsorder[id]; //del json keyValue      }      savecookie(datejsorder);    }    function addnum(id, count) {      var datejsorder = $("body").data(staticname);      datejsorder[id]['count'] += 1;      $("#count" + id).html(datejsorder[id]['count']);      savecookie(datejsorder);    }    function savecookie(data) {      var date = new Date();      date.setTime(date.getTime() + (1 * 24 * 60 * 60 * 1000));      $.cookie(staticname, JSON.stringify(data), {        path: '/',        expires: date      });    }    function dosubmit() {      var datejsorder = $("body").data(staticname);      alert(JSON.stringify(datejsorder));      //$("#result").html("json内容:" + JSON.stringify(data)).css('background', '#e0e0e0');      jsonAjax("ShoppingCar.ashx", JSON.stringify(datejsorder), "text", getsuccess);    }    function getsuccess(o) {      //alert(o);      //成功后操作    }    function jsonAjax(url, param, datat, callback) {      $.ajax({        type: "post",        url: url,        data: param,        dataType: datat,        success: callback,        error: function () {          jQuery.fn.mBox({            message: '恢复失败'          });        }      });    };  </script></head><body><div>  <ul id="list">  <li>购物车里暂无商品</li>  </ul>  <input type="button" value="确定,下一步" onclick="dosubmit();" /></div></body></html>

更多关于jQuery相关内容感兴趣的读者可查看本站专题:《jquery中Ajax用法总结》、《jQuery表格(table)操作技巧汇总》、《jQuery拖拽特效与技巧总结》、《jQuery扩展技巧总结》、《jQuery常见经典特效汇总》、《jQuery动画与特效用法总结》、《jquery选择器用法总结》及《jQuery常用插件及用法总结

希望本文所述对大家jQuery程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表