Este artículo comparte el código específico del módulo del carrito de compras para su referencia. El contenido específico es el siguiente
No es una sesión o una cookie, sino una mesa
> Agregar una entrada de compras
> Modificar el número de entradas de compras
> Eliminar una entrada
> Deleción de entradas por lotes
> Mi carrito de compras, es decir, artículos de consulta por usuario
> Consulta las entradas marcadas
1. Tabla de datos
La copia del código es la siguiente: inserte en valores `t_cartitem` (` Cartitemid`, `cantidad`,` bid`, `uid`,` Orderby`) ('B8939FC55131469CAB11E3924D40185B', 1, 'CE01F15D435A4C51B0AD8202A318DCA7', 'XXX', 11);
2. Cartitem
Cartitem de clase pública {private String Cartitemid; // Key primario Private int BigDecimal (book.getCurrPrice () + ""); BigDecimal b2 = new BigDecimal (cantidad + ""); BigDecimal B3 = B1.multiply (B2); retorno b3.doubleValue (); } public String getCartitEmID () {return CartitemID; } public void setCartitEmid (String Cartitemid) {this.CartitEmid = CartitemID; } public int getQuantity () {cantidad de retorno; } public void setQuantity (int } Libro público getBook () {Book de retorno; } public void setbook (libro de libro) {this.book = book; } Public User getUser () {return user; } public void setUser (usuario de usuario) {this.user = user; }}Consejos: no habrá errores en la redondear BigDecimal en Java
// Agregar método subtotal público doble getSubTotal () {/** No habrá error al usar BigDecimal* Requiere que el constructor de tipo de cadena se use*/ bigDecimal b1 = new BigDecimal (book.getCurrprice () + ""); BigDecimal b2 = new BigDecimal (cantidad + ""); BigDecimal B3 = B1.multiply (B2); return b3.doubleValue ();}3. Consulte la entrada del carrito de compras a través de los usuarios
Cada entrada en mi entrada de carrito de compras debe mostrar el precio de lista del libro ilustrado, lo que significa que se requieren múltiples tablas
Lista pública <artitem> findByUser (string uid) lanza sqlexception {string sql = "select * de t_cartitem c, t_book b where c.bid = b.bid y uid =? orden por c.orderby"; Lista <map <string, object >> mapList = qr.query (SQL, new Maplisthandler (), uid); return toCartitEmList (maplist);}4. Agregue entradas de carrito de compras ----- Agregar
JSP
<div> <form id = "form1" action = "<c: url value = '/cartitemServlet' //>" método = "post"> <input type = "Hidden" name = "Method" value = "add"/> <input type = "Hidden" name = "bid" value = "$ {book.bid}"/> Quiero comprar: <input id = "cnt" type = "text" name " value = "1"/> </form> <a id = "btn" href = "javascript: $ ('#form1'). Subt ();"> </a> </div>Cartitemservlet
public String add (httpservletRequest req, httpservletResponse resp) lanza ServletException, ioexception { / * * 1. Encapsular datos de formulario a Cartitem (bid, cantidad) * / map = req.getParameTermap (); Cartitem Cartitem = CommonUtils.tobean (mapa, cartitem.class); Libro de libros = CommonUtils.tobean (map, book.class); Usuario user = (usuario) req.getSession (). GetAttribute ("sessionUser"); Cartitem.setbook (libro); Cartitem.setUser (usuario); CartitemService.Add (Cartitem); return myCart (req, resp);}CartitemService
public void add (Cartitem Cartitem) {try { /** 1. Use uid y oferta para consultar si esta entrada existe en la base de datos* / Cartitem _Cartitem = Cartitemdao.findbyUidandbid (Cartitem.getuser (). GetUid (), Cartitem.getBook (). if (_Cartitem == null) {// Si no había dicha entrada, agregue la entrada Cartitem.setCartitemID (CommonUtils.uuid ()); Cartitemdao.addCartitem (Cartitem); } else {// Si hubiera esta entrada, modifique el número // use la cantidad original y el número de nuevas entradas que se utilizarán como la nueva cantidad int cantidad = Cartitem.getQuantity () + _cartitem.getQuantity (); // Modificar la cantidad de esta antigua entrada Cartitemdao.Updatequantity (_Cartitem.getCartitEmid (), cantidad); }} Catch (Exception e) {Throw New RuntimeException (e); }}Cartitemdao
public void addCartitem (Cartitem Cartitem) arroja sqlexception {string sql = "insertar en t_cartitem (cartitemid, cantidad, bid, uid)" + "valores (?,?,?,?)"; Objeto [] params = {cartitem.getCartitEmID (), cartitem.getQuantity (), cartitem.getBid (), cartitem.getuser (). Getuid ()}; Qr.Update (SQL, Params);}5. Página de módulo de carrito de compras JavaScript ---- Verifique
Calcular el total
Agregar evento Haga clic para seleccionar todo
Agregue el evento Haga clic en la casilla de verificación para todas las entradas
Agregue el evento de clic en el signo menos
Agregar evento Haga clic al signo más
Eliminar por lotes
list.jsp
<%@ page lenguaje = "java" import = "java.util.*" pageEncoding = "utf-8"%> <%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix = "fn" uri = "http://java.sun.com/jsp/jstl/functions"%> <! DocType html public "-// w3c // dtd html 4.01 transitional // en"> <html> <sead> <title> CartList.jsp </title> <teta http-equiv = "Pragma" Content " <meta http-equiv = "cache-confontrol" content = "no-cache"> <meta http-equiv = "expires" content = "0"> <meta http-equiv = "palabras clave" content = "keyword1, keyword2, keyword3"> <meta http-oquiv = "centre =" esto es mi página "> <! type = "text/css" href = "styles.css">-> <script src = "<c: url value = '/jquery/jQuery-1.5.1.js'/>"> </script> <script src = "<c: url value = '/js/ronda.js'/>"> </script> <linkat = "stylesheet types" href = "<c: url value = '/jsps/css/car/list.css' ///>"> <script type = "text/javascript"> $ (function () {showTotal (); // calcule el total/* Agregar Evento de clic para seleccionar todos*/$ ("#selectAll"). Click (Function () {/* 1. $ ("#selectAll"). attr ("checked"); /* 2. Sincronice las casillas de verificación de todas las entradas con el estado All*/ setitemcheckbox seleccionado (bool); /* 3. Sincronice el botón de pago con el All*/ setJiesuan seleccionado (bool); /* 4. Recalcule el total*/ showTotal (); }); /* Agregar evento Haga clic a las casillas de verificación de todas las entradas*/$ (": checkbox [name = checkboxBtn]"). Click (function () {var all = $ (": checkbox [name = checkboxBtn]"). {// all $ ("#selectAll"). Attr ("checked", true); // verificar la casilla de verificación Toda la casilla de verificación setJiesuan (true); // Haga que el botón de verificación sea válido} else if (select == 0) {// nadie seleccionado $ ("#selectall"). Attr ("versado", falso); // Cancelar todos los setjiesuan (false); // Cancelar}} $ ("#selectAll"). attr ("checked", false); // Cancelar todos los setjiesuan (false); // cancelar el checkout} else {$ ("#selectAll"). attr ("checked", false); // cancelar todos los setjiesuan (true); // Settlement es válido} showTotal (); // recalculado total}); /* Agregar evento Haga clic al signo menos*/ $ (". Jian"). Click (function () {// get cartitemid var id = $ (this) .attr ("id"). Substring (0, 32); // Obtener la cantidad en el cuadro de entrada Var Cantidad = $ ("#" + ID + ""). Val (); // Determinar la cantidad actual de la cantidad actual es 1. Pero eliminarlo. // Agregar Evento de clic $ (". Jia"). Click (function () {// get cartitemid var id = $ (this) .Attr ("id"). Substring (0, 32); // Obtener el número en el cuadro de entrada Var Cantidad = $ ("#" + ID + "Cantidad"). Val (); SendedEctantity (id, número (Cantidad);};});});});} modificar la cantidad. función sendupDateQuantity (id, cantidad) {$ .AJAX ({async: false, cache: false, url: "/bienes/cartitemservlet", data: {método: "updatequantity", cartitemid: id, cantidad: cantidad}, tipo: "post", tipo de datos: "json", éxito: function) {// 1 1. "Cantidad"). Val. /* 1. Obtenga todas las casillas de verificación de entradas marcadas! Bucle traversal */$ (": checkbox [name = checkboxbtn] [checked = true]"). Cada (function () {// 2. Obtenga el valor de la casilla de verificación, es decir, el prefijo de otros elementos var id = $ (this) .val (); // 3. Luego busque el elemento subtotal a través del prefix y obtenga su texto var de texto = $ ("#"#""#""#""). // 4. // 5. Muestre el total en el elemento total $ ("#total"). Texto (Round (total, 2)); // La función de la función Round () es retener Total 2 bits}/ * * Establecer el botón de verificación para todas las entradas en uniforme */function setItemCheckBox (bool) {$ (": chechbox [name = checkboxBtn]"). Attr ("checked", bool);}/ * * Establecer el estilo del botón */función setjiesuan (bool) {if (((checked ",", "); $ ("#jiesuan"). RemoveClass ("Kill"). AddClass ("Jiesuan"); $ ("#jiesuan"). Unbind ("hacer clic"); // deshacer todos los eventos de clic del elemento actual} else {$ ("#jiesuan"). removeClass ("jiesuan"). addClass ("kill"); $ ("#jiesuan"). click (function () {return false;}); }}/** Batch Eleter*/function BatchDelete () {// 1. Obtenga las casillas de verificación para todas las entradas seleccionadas // 2. Cree una matriz y agregue los valores de todas las casillas de verificación seleccionadas a la matriz // 3. Especifique la ubicación como CartitemServlet, Method de parámetro = BatchDelete, Parameter Cartitemids = tossorSing () de la matriz varía; $ (": CheckBox [name = checkboxBtn] [checked = true]"). Cada (function () {cartItEMIDArray.push ($ (this) .val ()); // Agregar el valor de la casilla de verificación a la matriz}); ubicación = "/bienes/CartitemServlet? Method = BatchDelete & CartitemiDArray;}/** checkout*/function jiesuan () {// 1. Obtenga las ID de todas las entradas seleccionadas y colóquelas en la matriz var cartitEmidArray = new array (); $ (": Checkbox [name = CheckBottn] [verificado = verdadero] "). CartitemidArray.push ($ (this) .val ()); // Agregar el valor de la casilla de verificación a la matriz}); $ ("#hiddentotal"). Val ($ ("#total"). Text ()); <tr> <td align = "right"> <img align = "top" src = "<c: url value = '/images/icon_empty.png' ////"/> </td> <td> <span> no hay productos en su carrito </span> </td> </tr> </table> </c: when> <c: lo contrario> <center = "CELED" CELED " CellPacing = "0"> <tr align = "Center" bgcolor = "#efeae5"> <td align = "izquierda"> <input type = "checkbox" id = "selectall" checked = "checked"/> <etiqueta for = "selectall"> Seleccionar todos </sel etiquetado> </td> <td colspan = "2"> nombre de producto </td> <td> unitar <TD> CANTIDAD </td> <td> Subtotal </td> <td> operación </td> </td> </td> </tr> <c: foreach elementos = "$ {CartitEmList}" var = "Cartitem"> <tr align = "Center"> <td align = "izquierda"> <input value = "$ {Cartitemem.cartemid. type = "checkBox" name = "checkboxbtn" checked = "checked"/> </td> <td align = "izquierda"> <a href = "<c: url valor = '/jsps/book/desc.jsp'/>"> <img align = "top" src = "<c: url value = '/$ {Cartitem.book.image_b} </td> <td align = "izquierda"> <a href = "<c: url value = '/jsps/book/desc.jsp'/>"> <span> $ {cartitem.book.bname} </span> </a> </td> <td> <span> id="${cartItem.cartItemId }Jian"></a><input readonly="readonly" id="${cartItem.cartItemId }Quantity" type="text" value="${cartItem.quantity }"/><a id="${cartItem.cartItemId }Jia"></a> </td> <td> <span> ¥ <span id = "$ {Cartitem.CartitEmid} subtotal"> $ {Cartitem.subtotal} </span> </span> </td> <td> <a href = "<c: url value = '/cartitemservlet? } '/> "> Eliminar </a> </td> </td> </tr> </c: foreach> <tr> <td colspan =" 4 "> <a href =" javascript: batchDelete (); "> lote delete </a> </td> <td colspan =" 3 "align =" derecho " 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" name="total" id="hiddenTotal"/> <input type="hidden" name="method" value="loadCartItems"/> </form> </c:otherwise></c:choose> </body> </html>Consejos: ronda ronda.js en js
// 5. Muestre el total en el elemento total $ ("#total"). Texto (redondo (total, 2)); // La función de la función redonda () es retener 2 bits de total6. Función de deleción de lotes ---- Eliminar
JSP
function BatchDelete () {// 1. Obtenga las casillas de verificación para todas las entradas seleccionadas // 2. Cree una matriz y agregue los valores de todas las casillas de verificación seleccionadas a la matriz // 3. Especifique la ubicación como CartitemServlet, Parameter Method = BatchDelete, Parameter Cartitemids = toString () de la matriz var CartitArray = new Array ();; $ (": CheckBox [name = checkboxBtn] [checked = true]"). Cada (function () {cartItEMIDArray.push ($ (this) .val ()); // Agregar el valor de la casilla de verificación a la matriz}); Ubicación = "/Goods/CartitemServlet?Eliminar uno
if (cantidad == 1) {if (confirmar ("¿Realmente desea eliminar la entrada?")) {ubicación = "/bien }} demás {7. Número de modificaciones ----- Modificar
JSP
// Solicitar el servidor y modificar el número. función sendupDateQuantity (id, cantidad) {$ .AJAX ({async: false, cache: false, url: "/bienes/cartitemservlet", data: {método: "updatequantity", cartitemid: id, cantidad: cantidad}, tipo: "post", tipo de datos: "json", éxito: function) {// 1 1. "Cantidad").servir
Public String UpdateQuantity (httpservletRequest req, httpservletResponse resp) lanza ServletException, ioException {String CartitEMID = req.getParameter ("CartitEMID"); int Cartitem Cartitem = CartitemService.Updatequantity (Cartitemid, cantidad); // devuelve un objeto JSON al cliente StringBuilder sb = new StringBuilder ("{"); sb.append ("/" cantidad/""). append (":"). append (Cartitem.getQuantity ()); sb.append (","); sb.append ("/" Subtotal/""). Append (":"). Append (Cartitem.getSubTotal ()); sb.append ("}"); resp.getwriter (). print (sb); devolver nulo;}Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.