以下是一个简单的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> `