您现在的位置是:首页 > cms教程 > Ecshop商城教程Ecshop商城教程
ecshop的ajax刷新购物车功能实现方法
凡蕾2025-01-20Ecshop商城教程已有人查阅
导读1、比如我们category.dwt 里有。我们现在需要实现点击按钮后页面不刷新去更新上面购物车数量2、首先我们需要调入系统这俩个js文件 是有关ajax实现效果的类问题 我们大可不去管 只需要调入 下来我们打开系统的common.js文件
1、比如我们category.dwt 里有
2、首先我们需要调入系统
进行添加我们自己的添加购物车函数
a.点击按钮首先执行这个函数 获取我们的数据 ecshop二次开发整理Ecshop ajax应用讨论
b. Ajax.call('flow.php?step=add_to_cart', 'goods=' + goods.toJSONString(), addToCartResponse_xaphp, 'POST', 'JSON');
这是局部执行 也就是无刷新执行flow.php?step=add_to+cart 同时把数据通过POST提交,有关json具体原理想研究的朋友可以去网上找资料。
c、addToCartResponse_xaphp回调函数很重要.
3、以上系统内部访问flow.php 那么我们当然要去flow.php
打开flow.php 我们找到 if($_REQUEST['step'] == 'add_to_cart' ){
添加购物车的程序}
解释:
a、我们通过POST传递了数据 在.php文件当然需要接收。首先我们要调入json处理数据文件 include_once('includes/cls_json.php'); 这个文件很重要 即 js 和php 直接通过一种方式俩者进行数据交互
b、$result = array('error' => 0, 'message' => '', 'content' => '', 'goods_id' => ''); 这个也是我们常用的 默认定义数组。
c、$json = new JSON;声明json类
d、$goods = $json->decode($_POST['goods']); 数据接收给$goods
4、 比如我们添加购物车成功 我们可以数组里定义 $result['error']=0; 就是把我们用到的数据放入$result数组
形象点 个人理解就是 通过 die($json->encode($result));数据传递给我们刚才的回调函数
下来我看回调函数的写法
<a href='flow.php'><SPAN id='cart_count_all'>{insert name='cart_info'}</SPAN></A>
<a onclick="javascript:addToCart_xaphp({$goods.goods_id});" style="cursor: pointer;">添加购物车</a>
我们现在需要实现点击按钮后页面不刷新去更新上面购物车数量2、首先我们需要调入系统
{insert_scripts files='transport.js,utils.js'}
这俩个js文件 是有关ajax实现效果的类问题 我们大可不去管 只需要调入 下来我们打开系统的common.js文件进行添加我们自己的添加购物车函数
function addToCart_xaphp(goodsId, parentId) {
var goods = new Object();
var spec_arr = new Array();
var fittings_arr = new Array();
var number = 1;
var formBuy = document.forms['ECS_FORMBUY'];
var quick = 0;
// 检查是否有商品规格
goods.quick = quick;
goods.spec = spec_arr;
goods.goods_id = goodsId;
goods.number = number;
//goods.guige = guige;
goods.parent = (typeof(parentId) == "undefined") ? 0 : parseInt(parentId);
Ajax.call('flow.php?step=add_to_cart', 'goods=' + goods.toJSONString(), addToCartResponse_xaphp, 'POST', 'JSON'); }
解释;a.点击按钮首先执行这个函数 获取我们的数据 ecshop二次开发整理Ecshop ajax应用讨论
b. Ajax.call('flow.php?step=add_to_cart', 'goods=' + goods.toJSONString(), addToCartResponse_xaphp, 'POST', 'JSON');
这是局部执行 也就是无刷新执行flow.php?step=add_to+cart 同时把数据通过POST提交,有关json具体原理想研究的朋友可以去网上找资料。
c、addToCartResponse_xaphp回调函数很重要.
3、以上系统内部访问flow.php 那么我们当然要去flow.php
打开flow.php 我们找到 if($_REQUEST['step'] == 'add_to_cart' ){
添加购物车的程序}
解释:
a、我们通过POST传递了数据 在.php文件当然需要接收。首先我们要调入json处理数据文件 include_once('includes/cls_json.php'); 这个文件很重要 即 js 和php 直接通过一种方式俩者进行数据交互
b、$result = array('error' => 0, 'message' => '', 'content' => '', 'goods_id' => ''); 这个也是我们常用的 默认定义数组。
c、$json = new JSON;声明json类
d、$goods = $json->decode($_POST['goods']); 数据接收给$goods
4、 比如我们添加购物车成功 我们可以数组里定义 $result['error']=0; 就是把我们用到的数据放入$result数组
形象点 个人理解就是 通过 die($json->encode($result));数据传递给我们刚才的回调函数
下来我看回调函数的写法
function addToCartResponse_xaphp(result)
{
if (result.error > 0)
{
// 如果需要缺货登记,跳转
if (result.error == 2) {
if (confirm(result.message))
{
location.href = 'user.php?act=add_booking&id=' + result.goods_id;
}
}
// 没选规格,弹出属性选择框
else if (result.error == 6)
{ openSpeDiv(result.message, result.goods_id, result.parent);
} else {
alert(result.message);
}
} else {
getCartNumber();
}
}
function getCartNumber(){
Ajax.call('transport.php?act=cart_number', '', getCartNumberResponse, 'GET', 'JSON');
}
解释:回调函数里我们又调用 getCartNumber()函数 在这个函数里我们又一次利用ajax查询购物车数量 transport.php代码
if($_REQUEST['act'] =='cart_number')
{ include_once('includes/cls_json.php');
//$_POST['goods'] = json_str_iconv($_GET['goods_id']);
$sql = 'SELECT SUM(goods_number) AS number, SUM(goods_price * goods_number) AS amount' . ' FROM ' . $GLOBALS['ecs']->table('cart') . " WHERE session_id = '" . SESS_ID . "' AND rec_type = '" . CART_GENERAL_GOODS . "'"; $row = $GLOBALS['db']->GetRow($sql); if ($row) { $number = intval($row['number']); $amount = floatval($row['amount']); } else { $number = 0; $amount = 0; }
$json = new JSON; $result['content'] = $number; die($json->encode($result)); }
然后在传 调函数
function getCartNumberResponse(result)
{
//alert(result.content);
var message = '('+result.content+')';
document.getElementById('cart_count_all').innerHTML = message;
}
好我们接收数据库查询到的数量然后通过innerHTML写入到 cart_count_all层搞定。
本文标签:
很赞哦! ()
相关教程
图文教程
ecshop商品搜索页title商品搜索文字怎么删除
去掉ecshop搜索页Title里的“商品搜索”四个字的方法:修改 search.php 文件
ecshop分页函数get_pager重写
在分页的时候要按照自己的需求分页,所有在ecshop原有的分页函数基础上进行了修改:返回的$pager 数组里面包含了第一页/末页 、上一页/下一页 已经分页显示的码数及地址
ecshop二次开发修改问答
自己从事B4C电子商务开发一段时间了,特别对ecshop深有体会,刚接触的时候不容易理解,下面将根据自己的经验,来总结100条关于操作ecshop电子商务系统的小问题。
ecshop安装时错误的解决方法
网上提示方法将install/includes/lib_installer.php以下内容修改后仍然提示失败:include(ROOT_PATH . 'install/languages/zh_cn.php');解决办法:
相关源码
-
(自适应)品牌创意设计作品工作室pbootcms模板下载该模板适用于品牌策划、艺术设计、广告创意公司官网,亦可通过替换图文快速适配其他行;高端创意设计公司工作室网站源码极简代码架构、艺术化视觉布局、企业级功能扩展性。查看源码 -
手机软件APP游戏软件下载网站Pbootcms模板(自适应)基于PbootCMS内核深度开发的网站模板,为移动互联网时代打造。无论是手机APP推广、游戏软件展示,还是各类企业官网需求,本模板都能通过简单的图文替换实现行业无缝切换查看源码 -
蓝色工业机械五金设备pbootcms模板源码下载(PC+WAP)为机械制造与五金设备企业设计的响应式网站模板,基于PbootCMS内核开发。采用蓝色工业风格强化行业属性,宽屏布局突出设备细节展示,支持PC与WAP端自适应查看源码 -
(响应式)轴承机械五金零件产品pbootcms落地推广单页源码下载为轴承、机械零件等工业产品打造的响应式单页模板,基于PbootCMS内核开发,助力企业快速构建专业级产品展示页面。模板采用工业风设计语言,突出产品参数与性能优势,适用于设备制造商、零部件供应商等B2B场景推广。查看源码 -
(自适应响应式)教育培训机构集团网站pbootcms源码下载本模板基于PbootCMS系统开发,为教育培训机构设计,特别适合展示课程体系、师资团队和教学成果。采用响应式技术,确保在各类设备上都能提供良好的浏览体验。查看源码 -
pbootcms模板(PC+WAP)传媒广告影视公司网站源码基于PbootCMS内核开发的全自适应传媒文化网站模板,为影视公司、广告传媒企业打造,同时支持多行业快速适配。通过替换文字图片即可转换为其他行业网站查看源码
| 分享笔记 (共有 篇笔记) |
