Carrito.PHP
<div class="shopping-cart"> <section class="container content-section"> <h1>CART</h1> <?php $total = 0; if (isset($_SESSION['cart'])){ $product_id = array_column($_SESSION['cart'], 'product_id'); $result = $db->getData(); while ($row = mysqli_fetch_assoc($result)){ foreach ($product_id as $id){ if ($row['id'] == $id){ cartElement($row['product_image'], $row['product_name'],$row['product_price'], $row['id']); $total = $total + (int)$row['product_price']; } } } }else{ echo "<h5>Cart is Empty</h5>"; } ?> <div class="cart-total"> <strong class="cart-total-title">Total</strong> <span class="cart-total-price">$0</span> </div> <button class="btn btn-primary btn-purchase" type="button">CONFIRM ORDER</button> </section> </div>componente.php
function cartElement($productimg, $productname, $productprice, $productid){ $element = " <form action=\"cart.php?action=remove&id=$productid\" method=\"post\" class=\"cart-items\"> <div class=\"cart-row\"> <span class=\"cart-item cart-header cart-column\">$productname</span> <span class=\"cart-price cart-header cart-column\">RM$productprice</span> <span class=\"cart-quantity cart-header cart-column\"><input type=\"number\" value=\"1\" min=\"1\"></span> <button type=\"submit\" class=\"btn btn-danger mx-2\" name=\"remove\">Remove</button> </div> <div class=\"cart-items\"> </div> </form> "; echo $element; }Hola a todos, quisiera contar la cantidad y el precio del mismo que es el total. ¿Es posible hacerlo con javascript o php y cómo? He intentado varias formas de implementar la función en javascript, sin embargo, ninguno de mis esfuerzos funciona. Gracias por ayudarme.
No sé cómo el carrito almacena datos en la sesión, pero hacerlo de la siguiente manera lo hará más fácil.
$productoscarrito = array_keys($_SESSION['carrito']);
obtenga detalles del producto de la base de datos algo así como: - donde product_id IN (implode (',', $cartProducts))"
recorrer los productos obtenidos de la base de datos
$total = 0; while ($row = mysqli_fetch_assoc($result)){ $subtotal = $row['price'] * ($_SESSION['cart'][$row['id']]['quantity']); $total += $subtotal; // now you got product detail, quantity, price // print the html formatted information here }al final imprime el $total
si cambia la cantidad, actualice el carrito de la sesión y repita lo anterior.
Nota: es solo un ejemplo, debe agregar validaciones, formato/sql seguro, etc.