script+js+mysql写购物页面点击按钮加入购物车库

时间: 2023-08-02 14:07:28 浏览: 59
好的,下面是一个简单的购物页面点击按钮加入购物车的示例,使用了JavaScript、MySQL和PHP来实现: 1. 首先,创建一个MySQL数据库,包含两个表:一个用于存储商品信息,另一个用于存储购物车信息。 商品信息表(products)包含以下字段: - id: 商品ID,自增长整数,作为主键 - name: 商品名称,字符串 - description: 商品描述,字符串 - price: 商品价格,浮点数 购物车信息表(cart)包含以下字段: - id: 购物车项ID,自增长整数,作为主键 - product_id: 购物车项对应的商品ID,整数 - quantity: 购物车项中商品的数量,整数 2. 在HTML页面中,为每个商品添加一个“加入购物车”按钮,并为按钮添加一个点击事件处理程序。点击按钮时,JavaScript代码会向服务器发送一个HTTP请求,将商品ID添加到购物车表中。 ```html <!DOCTYPE html> <html> <head> <title>购物页面</title> </head> <body> <h1>商品列表</h1> <ul> <li> <h2>商品1</h2> <p>描述商品1的信息。</p> <p>价格:$10.00</p> <button class="add-to-cart" data-product-id="1">加入购物车</button> </li> <li> <h2>商品2</h2> <p>描述商品2的信息。</p> <p>价格:$20.00</p> <button class="add-to-cart" data-product-id="2">加入购物车</button> </li> <!-- 添加更多商品... --> </ul> <h2>购物车</h2> <ul id="cart"></ul> <script> // 获取所有“加入购物车”按钮 const addToCartButtons = document.querySelectorAll('.add-to-cart'); // 为所有“加入购物车”按钮添加点击事件处理程序 addToCartButtons.forEach(button => { button.addEventListener('click', function() { // 获取按钮所对应的商品ID const productId = button.getAttribute('data-product-id'); // 发送HTTP请求将商品ID添加到购物车表中 const xhr = new XMLHttpRequest(); const url = 'add_to_cart.php'; const params = `product_id=${productId}`; xhr.open('POST', url, true); xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); xhr.onreadystatechange = function() { if(xhr.readyState == 4 && xhr.status == 200) { // 更新购物车列表 const cartList = document.getElementById('cart'); cartList.innerHTML = xhr.responseText; } }; xhr.send(params); }); }); </script> </body> </html> ``` 3. 在服务器端,创建一个PHP脚本(add_to_cart.php),用于将商品ID添加到购物车表中。PHP代码将商品ID插入到购物车表中,并返回最新的购物车列表HTML代码。注意,这是一个简单的示例,实际项目中需要考虑更多的安全性和性能方面的问题。 ```php <?php // 连接到MySQL数据库 $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "database"; $conn = new mysqli($servername, $username, $password, $dbname); // 检查连接是否成功 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } // 获取要添加到购物车的商品ID $productId = $_POST['product_id']; // 将商品ID插入到购物车表中 $sql = "INSERT INTO cart (product_id, quantity) VALUES ($productId, 1)"; if ($conn->query($sql) === FALSE) { echo "Error: " . $sql . "<br>" . $conn->error; } // 获取购物车列表HTML代码并返回 $sql = "SELECT products.name, cart.quantity, products.price FROM cart JOIN products ON cart.product_id=products.id"; $result = $conn->query($sql); if ($result->num_rows > 0) { $cartHtml = ''; while($row = $result->fetch_assoc()) { $cartHtml .= '<li>'; $cartHtml .= '<span>' . $row['name'] . '</span>'; $cartHtml .= '<span>' . $row['quantity'] . '</span>'; $cartHtml .= '<span>' . $row['price'] * $row['quantity'] . '</span>'; $cartHtml .= '</li>'; } echo $cartHtml; } else { echo '购物车为空'; } // 断开与MySQL数据库的连接 $conn->close(); ?> ``` 这样,用户在购物页面点击“加入购物车”按钮时,就会向服务器发送一个HTTP请求,将商品ID添加到购物车表中,并将最新的购物车列表HTML代码返回给页面,JavaScript代码会更新购物车列表显示最新的购物车内容。

相关推荐

最新推荐

recommend-type

Windows Server 2019 IIS10.0+PHP(FastCGI)+MySQL环境搭建教程

主要介绍了Windows Server 2019 IIS10.0+PHP(FastCGI)+MySQL环境搭建教程,需要的朋友可以参考下
recommend-type

详解MySQL8.0+常用命令

主要介绍了MySQL8.0+常用命令及操作命令,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
recommend-type

Python+Django+MySQL实现基于Web版的增删改查的示例代码

主要介绍了Python+Django+MySQL实现基于Web版的增删改查的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
recommend-type

Tomcat+Mysql高并发配置优化讲解

今天小编就为大家分享一篇关于Tomcat+Mysql高并发配置优化讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
recommend-type

Python+PyQt5+MySQL实现天气管理系统

主要为大家详细介绍了Python+PyQt5+MySQL实现天气管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

STC89C51 简单时钟

STC89C51 简单时钟,叫你从基础开始学习单片机,
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB归一化方法大比拼:5种方法,哪种最适合你的数据?

![MATLAB归一化方法大比拼:5种方法,哪种最适合你的数据?](https://www.finebi.com/wp-content/uploads/2019/11/FineBI%E8%A1%8C%E4%B8%9A%E9%A9%BE%E9%A9%B6%E8%88%B1-1024x510.png) # 1. MATLAB归一化概述 归一化是一种数据预处理技术,用于将数据缩放到特定范围内,从而消除不同特征之间的尺度差异。在MATLAB中,有各种归一化方法可用于不同类型的数据和应用程序。 归一化的主要目的是: - 提高模型的训练效率和准确性,通过消除特征之间的尺度差异,使模型能够更有效地学习
recommend-type

failed to register layer: ApplyLayer exit status 1 stdout: stderr: archive/tar: invalid tar header

很抱歉听到这个问题。这个错误通常是由于Docker镜像损坏或Docker存储库中缺少所需的图层引起的。您可以尝试以下几种方法来解决这个问题: 1. 清理Docker镜像和容器:使用命令“docker system prune”清理不再使用的Docker对象。 2. 检查Docker存储库:确保您正在使用可靠的Docker存储库,并检查是否存在所有必需的图层。 3. 重新下载Docker镜像:如果您确定问题是由于损坏的Docker镜像引起的,则可以尝试重新下载Docker镜像。 4. 更新Docker版本:如果您使用的是旧版Docker,则可能会出现此问题。尝试更新到最新版本的Docke
recommend-type

Linux系统常用操作命令大全手册

附件是Linux系统常用操作命令大全手册,是 markdown格式,其中覆盖了Linux系统管理、文件操作、网络配置等多个方面,都是日常工作中非常常用的命令,欢迎大家下载学习使用!