HTML购物车示例(勾选、删除、添加和结算功能)

简介: HTML购物车示例(勾选、删除、添加和结算功能)

以下是一个简单的HTML购物车示例,包含勾选、删除、添加和结算功能。结算功能使用PHP实现,可以获取选中商品的ID。

以下是一个简单的HTML购物车示例,包含勾选、删除、添加和结算功能。结算功能使用PHP实现,可以获取选中商品的ID`以下是一个简单的HTML购物车示例,包含勾选、删除、添加和结算功能。结算功能使用PHP实现,可以获取选中商品的ID。

<!DOCTYPE html>
<html>
<head>
      <link rel="stylesheet" href="css/style.css" />
  <title>购物车</title>
  <style>
    table {
      border-collapse: collapse;
      width: 100%;
    }
    th, td {
      text-align: left;
      padding: 8px;
      border-bottom: 1px solid #ddd;
    }
    tr:hover {
      background-color: #f5f5f5;
    }
    .check {
      width: 20px;
    }
    .delete {
      color: red;
      cursor: pointer;
    }
    .total {
      font-weight: bold;
      text-align: right;
    }
    #checkout {
      margin-top: 20px;
      text-align: right;
    }
  </style>
</head>
<body>
  <h1>购物车</h1>
  <table>
    <thead>
      <tr>
        <th class="check"></th>
        <th>商品名称</th>
        <th>价格</th>
        <th>数量</th>
        <th>小计</th>
        <th class="delete"></th>
      </tr>
    </thead>
    <tbody>
      <tr class="item-row" data-id="1">
        <td class="check"><input type="checkbox" name="item[]" value="1"></td>
        <td>商品1</td>
        <td>10.00</td>
        <td><input type="number" name="quantity[]" value="1"></td>
        <td class="subtotal">10.00</td>
        <td class="delete">X</td>
      </tr>
      <tr class="item-row" data-id="2">
        <td class="check"><input type="checkbox" name="item[]" value="2"></td>
        <td>商品2</td>
        <td>20.00</td>
        <td><input type="number" name="quantity[]" value="1"></td>
        <td class="subtotal">20.00</td>
        <td class="delete">X</td>
      </tr>
      <tr class="item-row" data-id="3">
        <td class="check"><input type="checkbox" name="item[]" value="3"></td>
        <td>商品3</td>
        <td>30.00</td>
        <td><input type="number" name="quantity[]" value="1"></td>
        <td class="subtotal">30.00</td>
        <td class="delete">X</td>
      </tr>
    </tbody>
    <tfoot>
      <tr>
        <td colspan="4" class="total">总计:</td>
        <td class="total" id="total">0.00</td>
        <td></td>
      </tr>
    </tfoot>
  </table>
  <div id="checkout">
    <button onclick="checkout()">结算</button>
  </div>
  <script>
    // 计算小计和总计
    function updateSubtotal() {
      var rows = document.querySelectorAll('.item-row');
      var total = 0;
      for (var i = 0; i < rows.length; i++) {
        var row = rows[i];
        var price = parseFloat(row.querySelector('td:nth-child(3)').textContent);
        var quantity = parseInt(row.querySelector('input[name="quantity[]"]').value);
        var subtotal = price * quantity;
        row.querySelector('.subtotal').textContent = subtotal.toFixed(2);
        total += subtotal;
      }
      document.querySelector('#total').textContent = total.toFixed(2);
    }
    // 删除商品
    function deleteItem() {
      var row = this.parentNode;
      row.parentNode.removeChild(row);
      updateSubtotal();
    }
    // 添加商品
    function addItem() {
      var table = document.querySelector('table');
      var row = table.insertRow(-1);
      row.classList.add('item-row');
      row.dataset.id = Date.now(); // 生成一个随机ID
      row.innerHTML = `
        <td class="check"><input type="checkbox" name="item[]" value="${row.dataset.id}"></td>
        <td><input type="text" name="name[]"></td>
        <td><input type="number" name="price[]" step="0.01"></td>
        <td><input type="number" name="quantity[]" value="1"></td>
        <td class="subtotal">0.00</td>
        <td class="delete">X</td>
      `;
      row.querySelector('.delete').addEventListener('click', deleteItem);
      row.querySelector('input[name="quantity[]"]').addEventListener('input', updateSubtotal);
      row.querySelector('input[name="price[]"]').addEventListener('input', updateSubtotal);
    }
    // 结算选中的商品
    function checkout() {
      var items = document.querySelectorAll('input[name="item[]"]:checked');
      var ids = [];
      for (var i = 0; i < items.length; i++) {
        ids.push(items[i].value);
      }
      if (ids.length > 0) {
        window.location.href = 'checkout.php?ids=' + ids.join(',');
      } else {
        alert('请选择要结算的商品');
      }
    }
    // 绑定事件
    var deleteButtons = document.querySelectorAll('.delete');
    for (var i = 0; i < deleteButtons.length; i++) {
      deleteButtons[i].addEventListener('click', deleteItem);
    }
    var addBtn = document.querySelector('#add');
    addBtn.addEventListener('click', addItem);
    var quantityInputs = document.querySelectorAll('input[name="quantity[]"]');
    for (var i = 0; i < quantityInputs.length; i++) {
      quantityInputs[i].addEventListener('input', updateSubtotal);
    }
    var priceInputs = document.querySelectorAll('input[name="price[]"]');
    for (var i = 0; i < priceInputs.length; i++) {
      priceInputs[i].addEventListener('input', updateSubtotal);
    }
  </script>
</body>
</html>
`
相关文章
|
1月前
html页面点击按钮实现页面跳转功能
html页面点击按钮实现页面跳转
57 11
|
6月前
|
Ubuntu C++ Docker
Docker的基本指令和HTML/PYTHON/C++的简单创建示例
Docker的基本指令和HTML/PYTHON/C++的简单创建示例
|
2月前
|
存储 移动开发 UED
HTML5 的 form 的自动完成功能
在HTML5中,`&lt;form&gt;`元素具备自动完成功能,可根据用户历史输入提供建议,提高输入效率并改善体验。默认情况下,浏览器会自动开启此功能,也可通过设置`autocomplete`属性为`on`或`off`来明确开启或关闭。对于特定表单字段,如`&lt;input&gt;`,同样可以通过设置`autocomplete`属性控制自动完成行为。浏览器通过记录并存储用户的历史输入,在用户再次访问相同表单时提供相应的自动完成建议。
WK
|
3月前
|
存储 移动开发 API
哪些功能是HTML5的新增功能
HTML5作为HTML的最新版本,引入了许多新的功能和特性,这些功能极大地丰富了网页的表现力和交互性。以下是HTML5的一些新增功能:
WK
69 2
|
3月前
|
移动开发 前端开发 JavaScript
Twaver-HTML5基础学习(3)基本数据元素(Data)其他功能函数以及组Group
本文介绍了Twaver HTML5中Data类的其他功能函数,如获取和操作子网元的方法,以及组(Group)的概念和使用。文章通过示例代码展示了如何在React组件中创建组、添加图元到组中,并通过toChildren函数获取满足特定条件的图元。
42 0
Twaver-HTML5基础学习(3)基本数据元素(Data)其他功能函数以及组Group
用html+javascript打造公文一键排版系统14:为半角和全角字符相互转换功能增加英文字母、阿拉伯数字、标点符号、空格选项
用html+javascript打造公文一键排版系统14:为半角和全角字符相互转换功能增加英文字母、阿拉伯数字、标点符号、空格选项
|
3月前
|
存储 文字识别 前端开发
用html+javascript打造公文一键排版系统13:增加半角字符和全角字符的相互转换功能
用html+javascript打造公文一键排版系统13:增加半角字符和全角字符的相互转换功能
|
3月前
|
前端开发
html遮罩功能
html遮罩功能
|
5月前
|
自然语言处理 开发者 Python
Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的 HTML 内容。Markdown 的语法简洁明了、学习容易,而且功能比纯文本更强。
Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的 HTML 内容。Markdown 的语法简洁明了、学习容易,而且功能比纯文本更强。
|
6月前
|
前端开发 JavaScript
HTML 全局属性介绍及示例
HTML 全局属性介绍及示例