❶ ecshop在购物车中 点击“去结算”就是checkout,是不是要再更新一次购物车的
如果你把商品数量改了,那是需要更新一下,之后再加入购物车,默认ecshop是有这样的问题
❷ 如何修改ecshop购物车自动清空的时间
这个时间不确定的,不过清空购物车一般是因为以下几个原因:
1、当用户的IP变化后,购物车自动专清属空;
2、当浏览器关闭后,购物车自动清空;
3、当用户退出登陆后,购物车自动清空;
4、管理员在后台登陆后,购物车自动清空。
❸ ecshop购物车结算问题
ecshop的购物车使用是相当的不方便.ecshop购物车一旦加入了商品,就必须点更新数量的按扭才能够更新.这样对ecshop使用者相当的不方便。我们将结合ecshop ajax的思路。来讲讲用ecshop的ajax无刷新更新购物车.
1:首先要包含js/shopping_flow.js 该文件主要是针对ecshop购买流程控制的js.我们将增加以下函数.
function submit_update_cart(rec_id){
var goods_number = document.getElementById("goods_number_"+rec_id).value;
Ajax.call('flow.php?step=ajax_update_cart', 'goods_number=' + goods_number+'&rec_id='+rec_id, submit_update_cartResponse_cart, 'GET', 'JSON');
}
2:在flow.dwt中。我们要修改input输入框.<input type="text" name="goods_number[{$goods.rec_id}]" id="goods_number_{$goods.rec_id}"
3:在ecshop的购物车函数中。什么json来结合ecshop ajax处理更新结果.部分程序如下
include_once('includes/cls_json.php');
$result = array('error' => '', 'content' => '', 'fanliy_number' => '0', 'rec_id' => '');
$json = new JSON();
/* AJAX修改购物车 */
$rec_id = $_REQUEST['rec_id']; //购物车ID
$goods_number = $_REQUEST['goods_number'];//
/* 判断库存 */
$num = $db -> getOne("select g.goods_number from ".$ecs->table('goods')." g ,".$ecs->table('cart')." c where c.rec_id = '$rec_id' and g.goods_id = c.goods_id ");
if($goods_number > $num){
$goods_number = $num;
$result['error'] = 1;
$result['fanliy_number']= $num;
$result['rec_id'] = $rec_id;
$result['content'] = '该商品库存不足'.$goods_number." 件,只有".$num."件";
die($json->encode($result));
}
/* 修改商品购物车 */
$sql = "update ".$ecs->table('cart')." set goods_number = '".$goods_number."' where rec_id = '".$rec_id."' and session_id = '" . SESS_ID . "' ";
$db -> query($sql);
4:通过flow.php中的php.返回更新数量后的结果.
function submit_update_cartResponse_cart(result){
if(result.error == '1'){
document.getElementById("goods_number_"+result.rec_id).value = result.fanliy_number;
alert(result.content)
}else{
var layer = document.getElementById("xianshi_price");
layer.innerHTML = (typeof result == "object") ? result.content : result;
}
}
通过以上ecshop二次开发例子,我们完成了ecshop购物车无刷新更新。
详情地址:http://www.shopex5.com/ecshop/1633.html
❹ ecshop的购物车中,能否实现点击删除不刷新页面
如果刷新一个已经提交过的页面时,系统总是会提示一个 "重试或取消”的对话框.,如果是一个普通的页面,好象也无所谓,有就有,大不了多点一下.但是当我们是在子窗体中刷新父窗体时,就显得有点多余了.所以就想把这个对话框给去了.找了很的办法.总结一下.
一, window.opener.location.reload() 如果改页面没提交过,这个方法好使.但是这个页面一旦提交过后,系统就会提示"重试或取消”的对话框.
二 window.opener.location = window.opener.location;这个方法肯定不提示,但是有个问题就是分页显示的时候,一刷新总是会显示第一页,这个也是理所当然,因为默认请求的就是第一页
三 window.opener.form1.submit();这个方法也不提示了,这个方法就是自动提交页面,绕开那个烦人提示的界面,但是如果被刷新的页面用到了比如gridwiew控件之类的,里面的数据可能不会随着刷新而发生变化,原因就是gridwiew的数据绑定是在某个控件的事件中进行,而页面是通过submit()提交的,不会触发该控件的事件.gridwiew中的数据也是通过读取viewstat中内容获得的,所以在刷新过程中数据不会发生变化.
❺ ecshop的购物车修改在哪里啊
方法有两个:
在后台 有个修改 顶部导航的 栏目,可以把其中不需要的链内接删除。
在模板文件中,在头容部的顶端对应的模板库文件中 把把其中不需要的链接删除。
补充: 删除多余的后,如果还是被挤下来,可以调整一下此处的div的宽度。
❻ ECSHOP购物车没有反应是怎么回事
是详情页面加入购物车出现此问题还是其他页面出现的此问题呢?
❼ ECSHOP如何用JS或Ajax全站调取购物车商品总数量
自己写个抄ajax请求的php页面test.php:
<?php
define('IN_ECS',true);
require(dirname(__FILE__).'/includes/init.php');
$sql="selectgoods_numberfrom".$GLOBALS['ecs']->table('cart').'whereuser_id='.$_SESSION["user_id"];
$number=$GLOBALS['db']->getOne($sql);
echo$number;
调用ecshop封装的ajax方法Ajax.call:
Ajax.call('test.php','',myresponse,'POST','TEXT');ajax请求test.php 得到结果result,通过回调函数赋值给id为id的元素。
functionmyresponse(result){
vartext=document.getElementbyId('id');
text.val=result;
}
❽ php问题-ecshop购物商城中购物车的bug问题
你要提交订单的时候超过库存不能提交,就在后台设置
商店设置》》购物流程》》减库存时机
你选下订单时就会在订单提交的时候做判断的
如果选择发货时,那就会在你操作订单去发货时候判断库存
❾ ecshop加入购物车后,怎么自动刷新购物车页面啊
你指的是在购物车直接商品数量后自动更新购物车总价吗?
❿ ecshop购物车价格不能及时更新为最新价格
这个其实有方法解决的,你可以看看模板堂模板的购物车页面,基本已经实现了这个功能。
下面引用了一篇教程
在购物流程页中,修改商品数量后可以自动更新购物车里的数据的功能,网上虽有少量方法,但是代码修改量比较大,而且考虑不是很周全,如礼品等的计算,数量框输入非数字字符后的反应等等。
我个人觉得没有必要搞这么麻烦,代码多了反而影响速度。直接利用原来的“更新购物车”按钮和系统默认的判断并进行少量修改就能很安全简单的实现自动更新功能。
思路就是用一小段JS代码来代替更新按钮进行表单提交,在商品数量输入框代码中添加一个失去焦点触发上述JS的onblur事件,在flow.php的update_cart过程页中修改跳转,让其自动跳回flow.php而不显示修改信息即可。
以2.7.0版的default模版为例:
1.备份并修改模版目录下的flow.dwt文件:
(1)在<head>之间添加一段JS,用于取代更新按钮实现表单提交:
<scripttype=”text/javascript”>
functionformSubmit()
{
document.getElementById(“formCart”).submit();
}
</script>
(2)在<body>之间找到诸如以下代码:
<!–{if$goods.goods_idgt0&&$goods.is_gifteq0&&$goods.parent_ideq0}普通商品可修改数量–>
<inputtype=”text”name=”goods_number[{$goods.rec_id}]”id=”goods_number_{$goods.rec_id}”value=”{$goods.goods_number}”size=”4″style=”text-align:center”onkeydown=”showdiv(this)”/>
将改成对象失去焦点时触发事件:onblur=”formSubmit()”,如:
<!–{if$goods.goods_idgt0&&$goods.is_gifteq0&&$goods.parent_ideq0}普通商品可修改数量–>
<inputtype=”text”name=”goods_number[{$goods.rec_id}]”id=”goods_number_{$goods.rec_id}”value=”{$goods.goods_number}”size=”4″style=”text-align:center”onblur=”formSubmit()”/>
(3)再找到下面的代码:
<inputname=”submit”type=”submit”value=”{$lang.update_cart}”/>
把这段代码删掉,就等于把“更新购物车”这个按钮删掉了。如果想保留该按钮,一定要把name=”submit”中的submit改成其他名字,否则在firebug下会报“submitisnotafunction”错误。原因是<form>之间如果有name=”submit”的元素话,在用document.getElementById(“formCart”).submit()提交表单的时候,该元素会和submit()方法发生混淆造成该错误。
2.备份并修改根目录下的flow.php文件:
找到以下代码:
elseif($_REQUEST['step']==‘update_cart’)
把
show_message($_LANG['update_cart_notice'],$_LANG['back_to_cart'],‘flow.php’);
整行注释掉,
在它上面添加一行代码:
ecs_header(“Location:flow.php ”);
用于实现更新购物车自动跳转回详细页,如:
elseif($_REQUEST['step']==‘update_cart’)
{
/*——————————————————*/
//–更新购物车
/*——————————————————*/
if(isset($_POST['goods_number'])&&is_array($_POST['goods_number']))
{
flow_update_cart($_POST['goods_number']);
}
ecs_header(“Location:flow.php ”);
//show_message($_LANG['update_cart_notice'],$_LANG['back_to_cart'],‘flow.php’);
exit;
}
好啦,大功告成。