购物车功能实现 通过 php+MySQL+jQuery+Ajax,实现购物车功能

jacklove
发布: 2018-06-15 14:48:22
原创
3881人浏览过

相关mysql视频教程推荐:《mysql教程

数据库结构:


准备3个文件:

立即学习PHP免费学习笔记(深入)”;

1.cart.php     // 前端显示文件

2.cart_ajax.php  // ajax处理数据

3.config.php    //数据库配置

一、cart.php 

<pre name="code" class="html"><?php

include 'config.php';
$sql = "select * from cart";
$result = mysql_query($sql);
$row = array();
while($rows = mysql_fetch_array($result,MYSQL_ASSOC)){
    $row[] = $rows;
}
//print_r($row);
?>
<!DOCTYPE html>
<html lang="zh-hans">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<table width="" border="1" cellspacing="0" cellpadding="0" align="center">
    <tr>
        <td>商品名称</td>
        <td>商品库存</td>
        <td>商品单价</td>
        <td>购买数量</td>
        <td>小计</td>
        <td>操作</td>
    </tr>
    <!--遍历数据-->
    <?php foreach($row as $key=>$val){?>

    <tr>
        <td><?php echo $val['name'] ?></td>
        <td><?php echo $val['total_quantity'] ?></td>
        <!--商品单价-->
        <td><input type="text" name="price" value="<?php echo $val['price'] ?>"></td>
        <td>
            <button onclick="minusCart(this, '<?php echo $val['id'] ?>')">-</button>
            <!--购买数量-->
            <input type="text" name="num" value="<?php echo $val['num'] ?>" max="<?php echo $val['total_quantity'] ?>" />
            <button onclick="plusCart(this, '<?php echo $val['id'] ?>')">+</button>
        </td>
        <!--小计价格  -->
        <td><input type="text" name="subtotal_price" value="<?php echo $val['price']*$val['num'];?>" onclick="price()"></td>
        <td><button>编辑</button><button>删除</button></td>
    </tr>

    <?php }?>

    <tr>
        <!--总价-->
        <td>总价</td>
        <td colspan="4">0元</td>
    </tr>
</table>
<!--<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.1.min.js"></script>-->
<script src="jquery-2.1.1.min.js"></script>
<script>
    function setPrice(o) {//设置小计和总价
        var tr = o.closest('tr');
        var ipt = tr.find('input');
        ipt.filter(':last').val(parseInt(o.val()) * parseInt(ipt.eq(0).val(), 10));
        var sum = 0;
        o.closest('tbody').find('input[name="subtotal_price"]').each(function () { sum += parseInt(this.value, 0) || 0; })
            .end().find('td:last').html(sum+'元')
    }
    //减
    function minusCart(_this, id){
        var num_input = $(_this).next('input[name="num"]');
        var num = parseInt(num_input.val());
        num--;
        if(num <= 0){
            return false;
        } else {
            num_input.val(num);
            setPrice(num_input);
            cartNum(num_input, id, num);
        }
    }
    //加
    function plusCart(_this,id){
        //获取购买数量
        var num_input = $(_this).prev('input[name="num"]');
        var num = parseInt(num_input.val());
        var total_quantity = parseInt(num_input.attr('max'));
        if(num >= total_quantity){
            alert('库存不足');
            return false;
        }else {
            //alert(num);
            num = parseInt(num) + 1;
            num_input.val(num);
            setPrice(num_input);
            cartNum(num_input, id, num);
        }
    }

    /**
     * 修改购物车商品数量
     * @param _this
     * @param id
     * @param num
     */
    function cartNum(_this, id, num){
        $.ajax({
            type: 'POST',
            url: 'cart_ajax.php',
            data: {id: id, num: num},
            dataType: 'json',
            success: function (res) {
                if (res.status == 1) {
                    _this.val(num);
                }else{
                    alert(res.info);
                }
            }
        });
    }



</script>
</body>
</html>
登录后复制

二、config.php

<?php
/**
 *email:scenewood@163.com
 *name:郑小木
 */
$server = 'localhost';
$data = 'shopping';
mysql_connect($server,'root','root');
mysql_set_charset('utf8');
mysql_select_db($data);
登录后复制

三、cart_ajax.php

<?php
/**
 *email:scenewood@163.com
 *name:郑小木
 */
include 'config.php';


//接受cart.php的数据
if ($_POST) {
    $id = $_POST['id'];
    $num = $_POST['num'];
    $retureInfo = array(
        'status' => 0,
        'info' => '修改商品数量失败'
    );
    $sql = "UPDATE `cart` SET num='{$num}' WHERE `id`={$id}";
    mysql_query($sql);
    $row = mysql_affected_rows();
    if ($row == 1) {
        $retureInfo['status'] = 1;
        $retureInfo['info'] = '修改商品数量成功';
    }
    echo json_encode($retureInfo);
}
登录后复制

本文讲解了购物车功能实现 通过 php+MySQL+jQuery+Ajax,实现购物车功能,更多相关内容请关注php中文网。

相关推荐:

如何通过linux系统部署php+mysql+apache 相关操作

Linux下Nginx+PHP+Mysql环境搭建流程讲解

Linux下Nginx+PHP+Mysql环境搭建流程讲解

以上就是购物车功能实现 通过 php+MySQL+jQuery+Ajax,实现购物车功能的详细内容,更多请关注php中文网其它相关文章!

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号