问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

很奇怪的js,ajax的问题,关于添加到购物车及点击删除的,就类似京东商城...

发布网友 发布时间:2022-04-26 23:54

我来回答

2个回答

懂视网 时间:2022-05-02 11:56

做京东账户项目中的购物车模块,功能之一就是添加购物车。要用到的是Apach环境,Mysql、PHP以及Ajax。

预计效果:用户点击->“加入购物车”  添加成功  已经2件

 

二、依据功能创建库、表、记录

  • 创建库:jd
  • 创建表:购物车表
  •           技术分享

  • 添加多条记录
  • 小坑:购物车表注意尽量少的与产品表重复。只要有:哪个用户?买了哪个商品?买了几个?就够了。
  • 小坑:小计,一般用程序计算,不写死。因为时间不同可能会有打折等变化出现,如果写死,则无法正确得出价格。
  •         技术分享

    /***购物车表***/
    CREATE TABLE jd_cart(
     id  INT PRIMARY KEY AUTO_INCREMENT,
     uid INT,
     productid INT,
     count INT
    );
    INSERT INTO jd_cart VALUES(null,10,1,2);
    INSERT INTO jd_cart VALUES(null,10,2,1);

     

       

    三、创建php

          ①jd.sql   ②init.php  ③add_cart.php{添加购物车}

  • 添加数据库
  • 小坑:如果没买过某件商品,直接写1就好,但如果之前买过该商品,那要在之前的数据上加1。
  • 1.查询是否购买商品 uid pid
    SELECT * FROM jd_cart
    WHERE uid = $uid AND pid = $pid;
    返回值:null rows
    
    2.没有购买过该商品
    INSERT INTO jd_cart VALUES(null,$uid,$pid,1);
    
    3.已经购买过该商品
    UPDATE jd_cart SET count=count+1
    WHERE uid=$uid AND $pid;
  • 返回字符串   1  购买1个商品    
  •                              3   购买3个商品 

    <?php
     header("Content-Type:text/plain;charset=utf-8");
     @$uid = $_REQUEST[‘uid‘]or die("-1");
     @$pid = $_REQUEST[‘pid‘]or die("-2");
     require("init.php");
    
     $sql = "SELECT * FROM jd_cart WHERE uid=$uid AND productid=$pid";
     $result = mysqli_query($conn,$sql);
     $row = mysqli_fetch_assoc($result);
     $count = 0;
     if($row===null){//如果不存在,添加记录
     $sql = "INSERT INTO jd_cart VALUES(null,$uid,$pid,1)";
     $result = mysqli_query($conn,$sql);
     $count = 1;
     }else{//如果存在,更新记录
     $sql = "UPDATE jd_cart SET count=count+1 WHERE uid=$uid AND productid=$pid";
     $result = mysqli_query($conn,$sql);
     $count = $row[‘count‘]+1;
     }
     echo $count;//输出购买数量
    ?>
    <?php
     $conn = mysqli_connect("127.0.0.1","root","","jd",3306);
     mysqli_query($conn,"SET NAMES UTF8");
    ?>

     

     

     

    测试  

    http://127.0.0.1/jd_store/data/add_cart.php?uid=10&pid=1      返回   3      

    http://127.0.0.1/jd_store/data/add_cart.php?uid=10&pid=10    返回   1

    数据库

    技术分享

     

    三、创建js{分析html/css}

          ①productlist.html  

          ②js/productlist.js 

          ③js

           技术分享

           小坑:Ajax动态生成的不能直接绑定,因为绑定时这个对象还不存在,要先找一个已存在的元素委托代理。

     /***添加购物车***/
     $("$plist").on(‘click‘,"a.addcart",function(e){
     e.preventDefault();
     var pid = $(this).attr("href");
     alert(pid);
     });

     

    全部代码:

    /***添加购物车***/
     $("#plist").on(‘click‘,‘a.addcart‘,function(e){
     e.preventDefault();
     var pid = $(this).attr("href");
     //把当前登录用户编号+商品编号
     //发送ajax请求给服务器,执行添加操作
     $.ajax({
      ‘type‘:‘POST‘,
      ‘url‘:‘data/add_cart.php‘,
      data:{uid:10,pid:pid},
      success:function(data){
      if(data>0){
       alert("添加成功!该商品已购买"+data);
      }else{
       alert("添加失败");
      }
      },
      error:function(){
      alert("添加商品出错,请检查网络!");
      }
     });
     });

     

    正常实现:

    技术分享

     

    关闭服务器:

    技术分享

     

    【京东账户】——Mysql/PHP/Ajax爬坑之添加购物车

    标签:执行   请求   项目   table   购物车   动态   关闭   技术分享   cti   

    热心网友 时间:2022-05-02 09:04

    初步怀疑你的删除事件绑定有问题:新加入的DOM元素未绑定到事件。这种情况应该使用事件委派来做,你用 jQuery 吗?假设你的购物车列表的 HTML 结构如下:

    <ul id="cartList">
        <li>
            购物车商品1
            <button>删除</button>
        </li>
        <li>
            购物车商品2
            <button>删除</button>
        </li>
        ……
    </ul>

    则删除购物车商品的代码为(用了 jQuery):

    $('#cartList').on('click', 'button', function() {  // 委派 button 的点击事件
        $(this).parent().remove();  // 移除购物车里当前商品
    });

    追问对的,就是事件绑定的问题,我没用each循环找元素,而是在元素标签上写onclick(this).就解决了。 谢大神了。

    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    办公软件综合实训图书信息 什么是高分子材料与工程高分子材料与工程介绍 抖音超市普通人怎么入驻 抖音上的超市怎么入驻的 胃胀,有时还有点痛:还嗝气请问吃什么药, ...喝水也吐经常嗝气吃东西就胃胀气经常胃酸有时候胃特别热烧心的感觉... 它是指示代词还是人称代词 指示代词和人称代词语文 汉语指示代词和人称代词区别 长款的牛仔衣如何搭配最出彩? 黄忠怎么死的 死在哪 淘宝购物车界面的js实现 黄忠后半生威震西南,前半生却默默无闻,会与哪个人有关? 网站购物车.js编码问题 黄忠是怎么死的呢? 请问js购物车代码加在哪才能实现当顾客看到加入购物车的按钮,点击后出现弹出框呢? 黄忠计夺天荡山故事梗概 用js实现购物车(用js cookie传递数据) 三国演义老将黄忠故事? 黄忠的小故事都有哪些 黄忠的早期经历,可能与太史慈交过手,二人胜负如何? 黄忠的早期经历,可能与太史慈交过手,二人胜负如何呢? 揭秘:三国中黄忠为刘备建立蜀国做出了哪些贡献 贷款利息增加对企业利润的影响 三年级作文,秋天的校园 秋天的校园作文200字(也写人,三年级)在那? 招商银行的信用卡电子账单导入不到支付宝里边去,请问大家有没有这种 下半年想去德国,关于银行流水对账单,我每次发工资都直接转到支付宝所以卡里是没钱的,这种情况会影响吗 怎样把银行卡里的账单记录导入到支付宝 支付宝绑定信用卡账单能提升芝麻分吗,支付宝绑定信用 黄忠为什么出名很晚?年轻的时候在干什么呢? 黄忠的一生 帮我改一个JS代码谢谢,购物车数字1的时候不能减到0,现在还能减到0_百 ... 黄忠出仕前的身世 求个js 购物车的js 就是点击列表 在另一边显示出来,并统计。 js对话框,我想做一个购物车结算功能,在结算的时候会花上几秒钟时间... 无刷新修改购物车产品数量得总金额的js代码 javascript 模仿淘宝购物车 js怎么获得购物车商品件数?将十分感谢!!! 当当网购物车javascript怎么写 点击一个购物网的加入购物车js没反应。 微波炉做蛋糕用什么火 为什么我用微波炉做的蛋糕中间会塌啊 · 用微波炉烤蛋糕 用微波炉烤蛋糕要用什么火候啊? 微波炉烘烤蛋糕塌了 微波炉烤蛋糕? 为什么微波炉做蛋糕会回缩? 微波炉做蛋糕放在中高火4分钟直接糊成碳了,请问到底应该怎么用微波炉烤蛋糕呢? 那位达人告知一下用微波炉做蛋糕时为啥不蓬松,反而很粘呢~~~