文档章节

ajax更新购物车数量

adbug
 adbug
发布于 2015/06/17 09:27
字数 473
阅读 26
收藏 0
点赞 0
评论 0
把我最近写的一个代码贴出来   可以参考 但不一定适用。

   
一、首先我把这个输入框的代码贴出来

  1. <INPUT class="input-text f-input"  onblur="changePrice(document.getElementById('goods_number_{$goods.rec_id}').value,{$goods.rec_id})" name="goods_number[{$goods.rec_id}]" id="goods_number_{$goods.rec_id}" value="{$goods.goods_number}"  id="ECS_FORMBUY">

复制代码

二、次 页面加入的javascript 也就是changeprice函数

  1. <script>
  2. /**
  3. * 点选可选属性或改变数量时修改商品价格的函数
  4. */
  5. function changePrice(number,rec_id)
  6. {
  7.   //v//ar attr = getSelectedAttributes(document.forms['ECS_FORMBUY']);
  8. // var qty = document.forms['ECS_FORMBUY'].elements['number'].value;
  9.   
  10.    Ajax.call('flow.php', 'step=update_group_cart&rec_id=' + rec_id +'&number=' + number, changePriceResponse, 'GET', 'JSON');
  11. }
  12. /**
  13. * 接收返回的信息
  14. */
  15. function changePriceResponse(res)
  16. {
  17.   if (res.error > 0)
  18.   {
  19.     document.getElementById('sysmsg_error').innerHTML = res.content;
  20.     document.all.sysmsg_error.style.display='';
  21.   }
  22.   else
  23.   {
  24.     if(document.all.sysmsg_error.style.display=='')
  25.   {
  26.    document.all.sysmsg_error.style.display='none';
  27.   }
  28.   document.getElementById('subtotal_'+res.rec_id).innerHTML = res.subtotal;//商品总价
  29.   document.getElementById('cart_amount').innerHTML = res.cart_amount;//购物车团购商品价
  30.   
  31.   }
  32. }
  33. </script>
  34. <script>
  35. /**
  36. * 点选可选属性或改变数量时修改商品价格的函数
  37. */
  38. function changePrice(number,rec_id)
  39. {
  40.   //v//ar attr = getSelectedAttributes(document.forms['ECS_FORMBUY']);
  41. // var qty = document.forms['ECS_FORMBUY'].elements['number'].value;
  42.   
  43.    Ajax.call('flow.php', 'step=update_group_cart&rec_id=' + rec_id +'&number=' + number, changePriceResponse, 'GET', 'JSON');
  44. }
  45. /**
  46. * 接收返回的信息
  47. */
  48. function changePriceResponse(res)
  49. {
  50.   if (res.error > 0)
  51.   {
  52.     document.getElementById('sysmsg_error').innerHTML = res.content;
  53.     document.all.sysmsg_error.style.display='';
  54.   }
  55.   else
  56.   {
  57.     if(document.all.sysmsg_error.style.display=='')
  58.   {
  59.    document.all.sysmsg_error.style.display='none';
  60.   }
  61.   document.getElementById('subtotal_'+res.rec_id).innerHTML = res.subtotal;//商品总价
  62.   document.getElementById('cart_amount').innerHTML = res.cart_amount;//购物车团购商品价
  63.   
  64.   }
  65. }
  66. </script>
复制代码


然后我把请求的php处理 程序也贴出来


  1. elseif($_REQUEST['step'] == 'update_group_cart')
  2. {
  3.     /*------------------------------------------------------ */
  4.     //-- 西安php服务中心团购更新购物车
  5.     /*------------------------------------------------------ */
  6.     include_once('includes/cls_json.php');
  7.     $json = new JSON();
  8.     $result = array('error' => '', 'content' => '');
  9. $rec_id = $_GET['rec_id'];
  10. $number = $_GET['number'];
  11.   
  12.   /*取的团购信息*/
  13.     $group_buy = group_buy_info($_SESSION['extension_id'], $number);

  14. /*判断输入是否合法*/
  15. if(!is_numeric($number))
  16. {
  17.           $result['error'] = '1';
  18.        $result['content'] ='请输入合法数量';
  19.        die($json->encode($result));

  20. }
  21.     if ($group_buy['restrict_amount'] > 0 && $number > ($group_buy['restrict_amount'] - $group_buy['valid_goods']))
  22.     {
  23.           $result['error'] = '1';
  24.     $restrict_amount =  $group_buy['restrict_amount'] - $group_buy['valid_goods'];
  25.     $result['content'] ='您最多可买'.$restrict_amount.'件';
  26.        die($json->encode($result));
  27.    }
  28.     $sql = "UPDATE " . $GLOBALS['ecs']->table('cart') . " SET goods_number = '$number' WHERE rec_id = $rec_id";
  29.    $GLOBALS['db']->query($sql);
  30. /*计算此订单总价*/
  31. $subtotal = $GLOBALS['db']->getONE("select goods_price * goods_number AS subtotal from ".$GLOBALS['ecs']->table('cart')." where rec_id = $rec_id");
  32.    /*购物车团购商品总金额*/
  33.    $cart_amount = cart_amount('',$_SESSION['flow_type']);
  34. $result['subtotal'] = price_format($subtotal, false);
  35. $result['cart_amount'] = price_format($cart_amount, false);
  36. $result['rec_id'] = $rec_id;
  37.     die($json->encode($result));
  38. }
复制代码

本文转载自:http://blog.csdn.net/fgdfgasd/article/details/12356281

共有 人打赏支持
adbug
粉丝 6
博文 75
码字总数 198249
作品 0
成都
eweapp 功能更新,ECShop 微信小程序商城购物车

eweapp ECShop非官方版微信小程序商城,基于 3.6 版本appserver接口,100% 兼容原有程序,没有对原有程序代码进行过任何改动。 2017-8-28 更新购物车页面 购物车页面数据显示 购物车商品删除...

tumobi ⋅ 2017/08/28 ⋅ 1

Web关于Jq的ajax异步返回的数据处理问题

请问大神,红色标记的变量goodsObjArr,如果前面加上var, 点击button,报错(for循环里)如下: ,也就是button绑定的点击事件。如果把var去掉,则一切正常()。如果把async设成false,还是报错...

任志强来晚了 ⋅ 2017/05/13 ⋅ 2

走进Vue时代进阶篇(01):重构电商购物车模块

前言 从这篇文章开始,我准备给大家分享一些关于Vue.js这门框架的技巧性系列文章,正好我们公司项目中也用到了Vue。所以,教是最好的学。进阶篇比较适合于二三线城市,还在小厂打拼的童鞋们。...

闰土大叔 ⋅ 01/08 ⋅ 0

了解ASP.NET MVC几种ActionResult的本质:JavaScriptResult & JsonResult

在之前的两篇文章(《EmptyResult & ContentResult》和《FileResult》)我们剖析了EmptyResult、ContentResult和FileResult这三种ActionResult是如何将Action执行的结果响应给客户端的。本篇...

长平狐 ⋅ 2012/09/04 ⋅ 0

ECShop 非官方版微信小程序商城--eweapp

eweapp ECShop非官方版微信小程序商城,基于3.6版本appserver接口,100%兼容原有程序,没有对原有程序代码进行过任何改动。 如果您觉得不错,欢迎star。 实时更新地址:https://github.com/...

tumobi ⋅ 2017/08/24 ⋅ 1

走进Vue时代进阶篇(01):重构电商购物车模块

前言 从这篇文章开始,我准备给大家分享一些关于Vue.js这门框架的技巧性系列文章,正好我们公司项目中也用到了Vue。所以,教是最好的学。进阶篇比较适合于二三线城市,还在小厂打拼的童鞋们。...

闰土大叔 ⋅ 01/08 ⋅ 0

走进Vue时代进阶篇(01):重构电商购物车模块

前言 从这篇文章开始,我准备给大家分享一些关于Vue.js这门框架的技巧性系列文章,正好我们公司项目中也用到了Vue。所以,教是最好的学。进阶篇比较适合于二三线城市,还在小厂打拼的童鞋们。...

⋅ 01/08 ⋅ 0

AJAX工作原理及其优缺点

一、AJAX 定义 AJAX(Asynchronous JavaScript and XML)其实是多种技术的综合,包括 Javascript、XHTML 和 CSS、DOM、XML 和 XSTL、XMLHttpRequest。其中:使用 XHTML 和 CSS 标准化呈现,使...

zqwang121 ⋅ 2016/04/14 ⋅ 0

PHP电商的,在商品页里,点击 立即去支付,就跳到购物车页,这里有个疑问了.

电商的,在商品页里,点击 立即去支付,就跳到购物车页,这里有个疑问了. 跳到购物车,有带POST过去?如果是的话,在购物车页刷新,这不是又重新提交表单了哦. 所以,是不是在点击之前,通过ajax执行了...

aa233527 ⋅ 2016/01/18 ⋅ 2

购物车的实现——淘淘商城(二十六)

简介 将购物车信息存储在cookie中,并且可以在不登录的状态下使用购物车。 优点: 缺点: 在taotao-portal中开发,调用服务层服务。 添加购物车 需求 分析 在商品详情页中添加到购物车。 添加...

qq_40369829 ⋅ 04/23 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring Cloud构建微服务架构服务注册与发现

Spring Cloud简介 Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、...

明理萝 ⋅ 30分钟前 ⋅ 0

占位slot

一、为什么我们需要slot 假如我们有个需要,子组件中需要显示一段html内容,显示什么不是由子组件决定,而是由父组件传递什么决定,我们该怎么做 很挫的做法,我们使用组件间的数据传递 父组...

金于虎 ⋅ 30分钟前 ⋅ 0

Linux集群 NTP 时间同步

基于CentOS 7 规划 比如有2台机器 IP 主机名 说明 192.168.103.51 cdh51 本地NTP服务端 192.168.103.52 cdh52 本地NTP客户端 安装NTP服务 每台机器都安装ntp yum -y install ntp NTP服务端(...

囚兔 ⋅ 33分钟前 ⋅ 0

国际版链克口袋 获取方法

1 月16日,网心科技玩客云团队在官网发布了停止链克口袋转帐服务的通知。通知中表示迅雷将于1月25日在AppStore和官网,正式发布链克口袋新版本,新版本不支持迅雷及迅雷合作伙伴开发的应用场...

xiaogg ⋅ 34分钟前 ⋅ 0

Raft中Batching和pipelining到底是什么?

Raft supports batching and pipelining of log entries, and both are important for best performance. Many of the costs of request processing are amortized when multiple requests a......

黑客画家 ⋅ 34分钟前 ⋅ 0

Mybatis-Plus 之BaseMapper 方法详解

/** * Mapper 继承该接口后,无需编写 mapper.xml 文件,即可获得CRUD功能 * 这个 Mapper 支持 id 泛型 * @author hubin * @Date 2016-01-23 */public interface BaseMapper<T> ...

干干 ⋅ 35分钟前 ⋅ 0

JVM笔记9-Class类文件结构

摘要: 1.Class类文件结构   Class 文件是一组以 8 位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在 Class 文件之中,中间没有添加任何分隔符,这使得整个 Class 文件中...

传授知识的天使 ⋅ 39分钟前 ⋅ 0

MySQL数据库之sleep线程过长如何处理?

  什么是sleep线程?   sleep线程长时间保持可客户端与服务端的连接状态   导致sleep过多的原因:   使用太多持久连接(高并发系统中 不适合使用持久连接)   程序中 没有及时关闭MyS...

老男孩Linux培训 ⋅ 39分钟前 ⋅ 0

转发和重定向的区别

转发在服务器端完成的;重定向是在客户端完成的 转发的速度快;重定向速度慢 转发的是同一次请求;重定向是两次不同请求 转发不会执行转发后的代码;重定向会执行重定向之后的代码 转发地址栏...

冯莉莉莉莉 ⋅ 40分钟前 ⋅ 0

go语言实现http proxy的关键一步

go语言自带包ReverseProxy 实现了proxy的功能。 但我希望proxy进程能够在代理的同时,完整的把请求和请求体记录在日志里。 仅使用ReverseProxy 包的话,uri记录没问题,但body只能被读取一次...

xuanzilie ⋅ 45分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部