تشارك هذه المقالة الكود المحدد لوحدة عربة التسوق للرجوع إليها. المحتوى المحدد كما يلي
إنها ليست جلسة أو ملف تعريف ارتباط ، ولكن طاولة
> أضف إدخال التسوق
> تعديل عدد إدخالات التسوق
> حذف إدخال
> حذف الدُفعة للإدخالات
> عربة التسوق الخاصة بي ، أي عناصر الاستعلام عن طريق المستخدم
> الاستعلام عن الإدخالات التي تم فحصها
1. جدول البيانات
نسخة الكود كما يلي: إدراج في قيم "t_cartitem" (`cartitemid` ، `Quantity '،` bid` ، `uid` ، `orderby`) ('B8939FC55131469CAB11E3924D40185B' ، 1 ، 'CE01F15D435A4C51B0AD8202A318DCA7' ، 'xxx' ، 11) ؛
2.CartItem
cartitem من الفئة العامة {private string crartitemid ؛ // المفتاح الأساسي int int Quantity ؛ // Quantity Private Book Book ؛ // book المقابلة للمستخدم الخاص الإدخال الخاص ؛ // المستخدم الذي لا يوجد مستخدم // إضافة طريقة فرعية public double getSubTotal () {/** لن يكون هناك أخطاء عند استخدام BigDecimal* BigDecimal (book.getCurrprice () + "") ؛ BigDecimal B2 = جديد BigDecimal (الكمية + "") ؛ BigDecimal B3 = B1.MultiPly (B2) ؛ إرجاع b3.doublevalue () ؛ } السلسلة العامة getCartItemId () {return cartitemid ؛ } public void setCartItemId (String cartitemid) {this.cartitemid = cartitemid ؛ } public int getQuantity () {return Quantity ؛ } public void setquantity (int Quantity) {this.quantity = Quantity ؛ } getBook Book Public () {return Book ؛ } public void setbook (book book) {this.book = book ؛ } المستخدم العام getUser () {return user ؛ } public void setUser (user user) {this.user = user ؛ }}نصائح: لن تكون هناك أخطاء في تقريب BigDecimal في Java
// إضافة طريقة فرعية عامة double getSubTotal () {/** لن يكون هناك أي خطأ عند استخدام BigDecimal* يتطلب مُنشئ نوع السلسلة لاستخدامه*/ BigDecimal B1 = جديد BigDecimal (book.getCurrprice () + ") ؛ BigDecimal B2 = جديد BigDecimal (الكمية + "") ؛ BigDecimal B3 = B1.MultiPly (B2) ؛ إرجاع b3.doublevalue () ؛}3. تحقق من إدخال عربة التسوق من خلال المستخدمين
يحتاج كل إدخال في إدخال عربة التسوق الخاصة إلى عرض سعر القائمة لكتاب الصور ، مما يعني أن الجداول المتعددة مطلوبة
القائمة العامة <Cartitem> FindByUser (String UID) يلقي sqlexception {string sql = "select * from t_cartitem c ، t_book b where c.bid = b.bid و uid =؟ order by c.orderby" ؛ قائمة <map <string ، object >> mapList = qr.query (sql ، new maplisthandler () ، uid) ؛ إرجاع ToCartItemList (MapList) ؛}4. إضافة إدخالات عربة التسوق ----- إضافة
JSP
<div> <form id = "form1" Action = "<c: url value = '/cartitemServlet' //>" method = "post"> <input type = "hidden" </form> <a id = "btn" href = "javaScript: $ ('#form1'). إرسال () ؛"> </a> </div>Cartitemservlet
السلسلة العامة إضافة (httpservletrequest req ، httpservletresponse resp) يلقي servleTexception ، ioException { / * * 1. Cartitem Cartitem = commonutils.tobean (الخريطة ، cartitem.class) ؛ كتاب كتاب = commonutils.tobean (MAP ، Book.Class) ؛ مستخدم المستخدم = (المستخدم) req.getSession (). getAttribute ("SessionUser") ؛ cartitem.setbook (كتاب) ؛ cartitem.setuser (المستخدم) ؛ Cartitemservice.add (Cartitem) ؛ إرجاع mycart (req ، resp) ؛}CartitemService
void public add (Cartitem Cartitem) {try { /** 1. استخدم UID و PID للاستعلام ما إذا كان هذا الإدخال موجودًا في قاعدة البيانات* / cartitem _cartitem = cartitemdao.findbyuidandided (cartitem.getuser (). if (_cartitem == null) {// إذا لم يكن هناك مثل هذا الإدخال ، أضف الإدخال cartitem.setCartItemId (commonutils.uuid ()) ؛ Cartitemdao.addcartitem (Cartitem) ؛ } آخر {// إذا كان هناك هذا الإدخال ، فقم بتعديل الرقم // استخدم الكمية الأصلية وعدد الإدخالات الجديدة المراد استخدامها ككمية int الجديدة = cartitem.getQuantity () + _cartitem.getquantity () ؛ . }} catch (استثناء e) {رمي new runTimeException (e) ؛ }}Cartitemdao
public void addCartItem (Cartitem Cartitem) يلقي sqlexception {string sql = "insert في t_cartitem (cartitemid ، الكمية ، العطاء ، uid)" + "القيم (؟ ،؟ ،؟ ،؟ ،؟)" ؛ Object [] params = {cartitem.getCartItemId () ، cartitem.getQuantity () ، cartitem.getbid () ، cartitem.getuser (). getuid ()} ؛ qr.update (SQL ، params) ؛}5. صفحة وحدة التسوق JavaScript ---- تحقق
حساب المجموع
أضف الحدث انقر لتحديد الكل
أضف حدث انقر فوق مربع الاختيار لجميع الإدخالات
أضف حدث انقر فوق علامة ناقص
أضف حدث انقر فوق علامة Plus
حذف دفعة
list.jsp
<٪@ page language = "java" import = "java.util.*" pageencoding = "utf-8" ٪> <٪@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core uri = "http://java.sun.com/jsp/jstl/functions" ٪> <! doctype html public "-// w3c // dtd html 4.01 transitional // en"> <html> <head> <title> cartlist <meta http-equiv = "cache-control" content = "no-cache"> <meta http-equiv = "Expires" content = "0" type = "text/css" href = "styles.css">-> <script src = "<c: url value = '/jQuery/jQuery -1.5.1.JS'/>"> </script> <script src = "<c: url value = '/js/rawn.js'/> href = "<c: url value = '/jsps/css/cart/list.css' ///>"> <script type = "text/javaScript"> $ (function () {showtotal () $ ("#selectall"). attr ("checked") ؛ /* 2. مزامنة مربعات الاختيار من جميع الإدخالات مع جميع الحالة المحددة*/ setItemCheckBox (Bool) ؛ /* 3. مزامنة زر الخروج مع جميع*/ setjiesuan المحددة (Bool) ؛ /* 4. إعادة حساب المجموع*/ showtotal () ؛ }) ؛ /* إضافة انقر فوق حدث إلى مربعات الاختيار لجميع الإدخالات*/$ (": مربع الاختيار [name = checkboxbtn]"). انقر فوق (function () {var all = $ (": checkbox [name = checkboxbtn]"). {// all $ ("#selectall"). attr ("checked" ، true) ؛ $ ("#selectall"). attr ("checked" ، false) ؛ // إلغاء جميع setjiesuan (false) ؛ // cancel checkout} else {$ ("#selectall"). attr ("checked" ، false) ؛ /* إضافة انقر فوق حدث إلى علامة Minus Sign*/ $ (". Jian"). انقر فوق (Function () {// Get Cartitemid var id = $ (this) .Attr ("id"). substring (0 ، 32) ؛ // احصل على الكمية في الكمية الحالية ، إذا كانت هذه الكمية ، فهي لا هي ، ولكن حذفه (Quantity == 1) {if ("هل تريد حقًا حذف الإدخال؟") {location = " // إضافة انقر فوق حدث $ (". تعديل الكمية. وظيفة sendUpDateQuantity (معرف ، الكمية) {$ .ajax ({Async: false ، ذاكرة التخزين المؤقت: false ، url: "/goods/cartitemservlet" ، البيانات: {method: "updatequantity" ، cartitemid: id ، Quantity} ، اكتب: "post" ، datatype: "json" "الكمية"). /* 1. الحصول على جميع خانات الاختيار إدخالات فحص! LOOP TRAVERSAL */$ (": مربع الاختيار [name = checkboxbtn] [checked = true]"). كل (دالة () {// 2. // 4. // 5. عرض المجموع على العنصر الكلي $ ("#Total"). النص (الجولة (المجموع ، 2)) ؛ . $ ("#jiesuan"). removeclass ("Kill"). addClass ("Jiesuan") ؛ $ ("#jiesuan"). Unfind ("Click") ؛ // التراجع عن جميع أحداث النقر فوق العنصر الحالي} else {$ ("#jiesuan"). removeclass ("jiesuan"). addClass ("Kill") ؛ $ ("#jiesuan"). انقر فوق (function () {return false ؛}) ؛ }}/** حذف الدُفعات*/وظيفة batchdelete () {// 1. $ (": مربع الاختيار [name = checkboxbtn] [checked = true]"). كل (دالة () {cartitemidarray.push ($ (this) .val ()) ؛ // أضف قيمة مربع الاختيار إلى المصفوفة}) ؛ location = "/goods/cartitemservlet؟ method = batchdelete & cartitemidarray ؛}/** checkout*/function jiesuan () {// 1. Cartitemidarray.push ($ (هذا) .val () $ ("#hiddentotal"). val ($ ("#total"). text ()) ؛ align = "right"> <img align = "top" src = "<c: url value = '/images/icon_empty.png' ///"/> </td> <td> <span> لا يوجد أي منتجات في العربة الخاصة بك </span> </td> </tr> </table> </c: عندما> cellpacing = "0"> <tr align = "center" bgColor = "#efeae5"> <td align = "left"> <input type = "checkbox" id = "selectall" <td> الكمية </td> <td> subtotal </td> <td> العملية </td> </td> </td> </tr> <c: foreach heads = "$ {cartitemlist}" var = "cartitem"> <tr align = "center"> <td align = "left"> type = "checkbox" name = "checkboxbtn" checked = "checked"/> </td> <td align = "left"> <a href = "<c: url value = '/jsps/book/desc.jsp'/>"> <img align = "top" </td> <td align = "left"> <a href = "<c: url value = '/jsps/book/desc.jsp'/>"> <span> $ {cartitem.book.bname} </span> </a> </td> <td> id = "$ {cartitem.cartitemid} jian"> </a> <الإدخال readOnly = "readonly" id = "$ {cartitem.cartitemid} الكمية" type = "text" value = "$ {cartitem.quantity}"/> <a id = "$ {cartitem.cartitemid} <span> ¥ <span id = "$ {cartitem.cartitemid} subtotal"> $ {cartitem.subtotal} </span> </span> </td> <td> <a href = "<c: url value = '/cartitemservlet؟ } '/> "> حذف </a> </td> </td> </tr> </c: foreach> <tr> <td colspan =" 4 "> <a href =" javaScript: batchdelete () ؛ id = "total"> </span> </span> </td> </tr> <tr> <td colspan = "7" align = "right"> <a href = "javaScript: jiesuan () ؛ value = '/cartitemservlet' //> "method =" post "> <input type =" hidden "name =" cartitemids "id =" cartitemids "/> <input type =" Hidden " </body> </html>نصائح: جولة جولة.
// 5. عرض المجموع على العنصر الكلي $ ("#Total"). النص (الجولة (المجموع ، 2))6. وظيفة حذف الدُفعات ---- حذف
JSP
الدالة batchdelete () {// 1. احصل على مربعات الاختيار لجميع الإدخالات المحددة // 2. قم بإنشاء صفيف وأضف قيم جميع مربعات الاختيار المحددة إلى المصفوفة // 3. حدد الموقع على أنه cartitemservlet ، parameter method = batchdelete ، parameter cartitemids = toString () من Array var cartitemidaray = new array () ؛ $ (": مربع الاختيار [name = checkboxbtn] [checked = true]"). كل (دالة () {cartitemidarray.push ($ (this) .val ()) ؛ // أضف قيمة مربع الاختيار إلى المصفوفة}) ؛ الموقع = "/البضائع/cartitemservlet؟ طريقة = batchdelete و cartitemids =" + cartitemidarray ؛}حذف واحد
if (Quantity == 1) {if ("تأكيد (" هل تريد حقًا حذف الإدخال؟ ")) {location ="/goodsemservlet؟ method = batchdelete & cartitemids = " + id ؛ }} آخر {7. عدد التعديلات ----- تعديل
JSP
// اطلب الخادم وتعديل الرقم. وظيفة sendUpDateQuantity (معرف ، الكمية) {$ .ajax ({Async: false ، ذاكرة التخزين المؤقت: false ، url: "/goods/cartitemservlet" ، البيانات: {method: "updatequantity" ، cartitemid: id ، Quantity} ، اكتب: "post" ، datatype: "json" "الكمية").servlet
سلسلة updateQuantity (httpservletrequest req ، httpservletresponse resp) يلقي servleTexception ، ioException {String cartitemid = req.getParameter ("cartitemid") ؛ int Quantity = integer.parseint (req.getParameter ("Quantity")) ؛ Cartitem Cartitem = CartitemService.updatequantity (Cartitemid ، الكمية) ؛ // إرجاع كائن JSON إلى Client StringBuilder SB = جديد StringBuilder ("{") ؛ sb.append ("/" Quantity/""). إلحاق (":"). append (cartitem.getQuantity ()) ؛ sb.append ("،") ؛ sb.append ("/" subtotal/""). append (":"). append (cartitem.getSubTotal ()) ؛ sb.append ("}") ؛ resp.getWriter (). print (SB) ؛ إرجاع فارغ ؛}ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.