實現效果圖
用戶添加多個訂單信息,多個訂單選擇立即購買生成訂單,關鍵點多選按鈕傳遞選中的多個值到后台
1.實體類
/** * 購物車類 */ public class ShoppingCart { private int id;//購物車編號', private int uId;// '用戶編號', private int cId;// 點卡編號', private String cName;// '點卡名稱',數據庫不存在此列 private String titleImg;// '點卡圖標',數據庫不存在此列 private int number;// '庫存數量',,數據庫不存在此列 private Double iniPrice;//原價格',,數據庫不存在此列 private Double price;// 售價',,數據庫不存在此列 private int gid;// 游戲編號', private String gName;//'游戲名稱',',數據庫不存在此列 private int num;// 購買數量', private Double totalPrice;// 金額統計'
2.js代碼
js定義一個類
/** * 對象函數 * @param cid * @param gid * @param price * @param gName * @param cName * @param byNum * @constructor */ function Cards(id,cId,gid,price,gName,cName,num) { this.id=id; this.cId=cId; this.gid=gid; this.price=price; this.gName=gName; this.cName=cName; this.num=num; }
//創建一個數組存貯對象
var cards=new Array();
/** * 選擇購物車的商品提交訂單 */ $("#payment").click(function() { var blackName = document.getElementsByName("cartCheckBox"); var $total=$("#shopping").find("tr[id]"); var k = 0; var serialArray=""; for (var i = 0; i < blackName.length; i++) { if (blackName[i].checked == true) { k = k + 1; var obj=$total.eq(i+1);//前面多了一個id定位+1 var card=new Cards(obj.children(".id").val(),obj.children(".cId").val(),obj.children(".gid").val(),obj.children(".price").val(),obj.children(".gName").val(),obj.children(".cName").val(),obj.children(".cart_td_6").children(".byNum").val()); cards[k-1]=card;//數組下標從0開始 } } if (k == 0) { changeDLGContent("請選擇商品后再提交!"); openYesOrNoDLG(); return; } var jsonsa=JSON.stringify(cards);//將一個JavaScript值(對象或者數組)轉換為一個 JSON字符串 $.ajax({ type: "POST",//請求類型 url: path+"/toPaymentother",//請求的url data: jsonsa,//請求參數 dataType: "json",//ajax接口(請求url)返回的數據類型 success: function (data) {//data:返回數據(json對象) if (data>0) { window.location.href=path+"/toPaymentOnly"; }else { changeDLGContent("添加訂單失敗!"); openYesOrNoDLG(); } }, error: function (data) {//當訪問時候,404,500 等非200的錯誤狀態碼 changeDLGContent("添加訂單失敗!"); openYesOrNoDLG(); } });
3.springMVC后台接收
import cn.jbit.biz.*; import cn.jbit.entity.*; import cn.jbit.util.Calculation; import cn.jbit.util.Pages; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference; import org.apache.commons.io.IOUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * 購物車跳轉到提交訂單頁面 * @return */ @ResponseBody @RequestMapping(value = "/toPaymentother") public String toPaymentother(HttpServletRequest request) throws IOException{ String jsonStr = IOUtils.toString(request.getInputStream(),"UTF-8"); List<ShoppingCart> cardsListJson = JSON.parseObject(jsonStr, new TypeReference<List<ShoppingCart>>() {}); System.out.println("JSONTOJAVAOBJ============"+cardsListJson); Double totalPir=0.0; int ret=0; if(cardsListJson.size()>0){ ret=1; for (ShoppingCart c:cardsListJson) { c.setTotalPrice(Calculation.getDouble(c.getPrice(),c.getNum())); totalPir+=c.getTotalPrice(); } request.getSession().setAttribute("totalPir",totalPir); request.getSession().setAttribute("cardsListJson",cardsListJson); } return JSON.toJSONString(ret); }
4.springboot后台接收,不同項目
js代碼
$.ajax({ type: "POST",//請求類型 url: path+"/offer/selectionDevice.html",//請求的url data:{SceneQuoteInfos:jsonsa},//請求參數,注意這里多了個SceneQuoteInfos dataType: "json",//ajax接口(請求url)返回的數據類型 success: function (data) {//data:返回數據(json對象) if(data.message=="ok") { errerInformation(data.data,"javascript:void(0);"); } else { errerInformation(data.data,"javascript:void(0);"); } } });
controller層
@Business @ResponseBody @RequestMapping(value = "/selectionDevice.html",method = RequestMethod.POST) public String toSelectionDevice (@RequestParam("SceneQuoteInfos") String SceneQuoteInfos, HttpServletRequest request)throws IOException { List<SceneQuoteInfo> SceneQuoteInfo = JSON.parseObject(SceneQuoteInfos, new TypeReference<List<SceneQuoteInfo>>() {}); System.out.println("SceneQuoteInfos============"+SceneQuoteInfos); return "business/selectionDevice"; }