frontend/checkout/cart.php
<?php // Include file cấu hình ban đầu của `Twig` require_once __DIR__ . '/../../bootstrap.php'; // Truy vấn database để lấy danh sách // 1. Include file cấu hình kết nối đến database, khởi tạo kết nối $conn include_once(__DIR__ . '/../../dbconnect.php'); // Kiểm tra dữ liệu trong session $data = []; if (isset($_SESSION['giohangdata'])) { $data = $_SESSION['giohangdata']; } else { $data = []; } // Yêu cầu `Twig` vẽ giao diện được viết trong file `frontend/thanhtoan/giohang.html.twig` // với dữ liệu truyền vào file giao diện được đặt tên là `giohangdata` // dd($data); echo $twig->render('frontend/thanhtoan/giohang.html.twig', ['giohangdata' => $data]);
templates/frontend/checkout/giohang.html.twig
{# Kế thừa layout frontend #} {% extends "frontend/layouts/layout.html.twig" %} {# Nội dung trong block title #} {% block title %} Giỏ hàng {% endblock %} {# End Nội dung trong block title #} {# Nội dung trong block headline #} {% block headline %} Giỏ hàng {% endblock %} {# End Nội dung trong block headline #} {% block customstyles %} <style> .hinhdaidien { width: 150px; height: 150px; } </style> {% endblock %} {# Nội dung trong block content #} {% block content %} <div class="container mt-4"> <div id="errors-container" class="alert alert-danger d-none face" role="alert"> <button type="button" class="close" data-dismiss="alert" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <h1 class="text-center">Giỏ hàng</h1> <div class="row"> <div class="col col-md-12"> {% if giohangdata %} <table class="table table-bordered"> <thead> <tr> <th>STT</th> <th>Ảnh đại diện</th> <th>Tên sản phẩm</th> <th>Số lượng</th> <th>Đơn giá</th> <th>Thành tiền</th> <th>Hành động</th> </tr> </thead> <tbody id="datarow"> {% for sanpham in giohangdata %} <tr> <td>{{ loop.index }}</td> <td> {% if sanpham.hinhdaidien %} <img src="/project-nentang/assets/uploads/{{ sanpham.hinhdaidien }}" class="hinhdaidien" /> {% else %} <img src="/project-nentang/assets/shared/img/default-image_600.png" class="hinhdaidien" /> {% endif %} </td> <td>{{ sanpham.sp_ten }}</td> <td> <input type="number" id="soluong_{{ sanpham.sp_ma }}" name="soluong" value="{{ sanpham.soluong }}" /> <button class="btn btn-primary btn-sm btn-capnhat-soluong" data-sp-ma="{{ sanpham.sp_ma }}">Cập nhật</button> </td> <td>{{ sanpham.gia }}</td> <td>{{ sanpham.soluong * sanpham.gia }}</td> <td> <!-- Nút xóa, bấm vào sẽ xóa thông tin dựa vào khóa chính `sp_ma` --> <a id="delete_{{ loop.index }}" data-sp-ma="{{ sanpham.sp_ma }}" class="btn btn-danger btn-delete-sanpham"> <i class="fa fa-trash" aria-hidden="true"></i> Xóa </a> </td> </tr> {% endfor %} </tbody> </table> {% else %} <h2>Giỏ hàng rỗng!!!</h2> {% endif %} <a href="/" class="btn btn-warning btn-md"><i class="fa fa-arrow-left" aria-hidden="true"></i> Quay về trang chủ</a> <a href="/frontend/thanhtoan/thanhtoan" class="btn btn-primary btn-md"><i class="fa fa-shopping-cart" aria-hidden="true"></i> Thanh toán</a> </div> </div> </div> {% endblock %} {# End Nội dung trong block content #} {% block customscripts %} <script> $(document).ready(function () { function removeSanPhamVaoGioHang(id) { var dulieugoi = { sp_ma: id }; $.ajax({ url: '/project-nentang/frontend/ajax/giohang-xoasanpham-ajax.php', method: "POST", dataType: 'json', data: dulieugoi, success: function (data) { // Refresh lại trang location.reload(); }, error: function (jqXHR, textStatus, errorThrown) { console.log(textStatus, errorThrown); var htmlString = `<h1>Không thể xử lý</h1>`; $('#thongbao').html(htmlString); // Hiện thông báo $('.alert').removeClass('d-none').addClass('show'); } }); }; $('.btn-delete-sanpham').on('click', function (event) { event.preventDefault(); var id = $(this).data('sp-ma'); console.log(id); removeSanPhamVaoGioHang(id); }); function capnhatSanPhamTrongGioHang(id, soluong) { var dulieugoi = { sp_ma: id, soluong: soluong }; $.ajax({ url: '/project-nentang/frontend/ajax/giohang-capnhatsanpham-ajax.php', method: "POST", dataType: 'json', data: dulieugoi, success: function (data) { // Refresh lại trang location.reload(); }, error: function (jqXHR, textStatus, errorThrown) { console.log(textStatus, errorThrown); var htmlString = `<h1>Không thể xử lý</h1>`; $('#thongbao').html(htmlString); // Hiện thông báo $('.alert').removeClass('d-none').addClass('show'); } }); }; $('.btn-capnhat-soluong').on('click', function(event) { event.preventDefault(); var id = $(this).data('sp-ma'); var soluongmoi = $('#soluong_' + id).val(); capnhatSanPhamTrongGioHang(id, soluongmoi); }); }); </script> {% endblock %}
Cùng nhau học tập, khám phá các kiến thức nền tảng về Lập trình web, mobile, database nhé.
Nền tảng kiến thức - Hành trang tới tương lai hân hạnh phục vụ Quý khách!
Khám phá, trải nghiệm ngay
Vui lòng đăng nhập để gởi bình luận!
Đăng nhậpChưa có bình luận nào!