购物流程中,商品相关配件购买时会显示[object][Object]解决方式

2016-07-07 15:33 来源:www.chinab4c.com 作者:ecshop专家

在我检查了 flow.php 的原码中, 行数 80 处会开始检察相关商品的存在状态、库存状态以及属性状态.
若是商品无特定选择属性时, 加购的商品会立即加入至购物车.
而当发现商品中存在有须选择的属性后, 它即将文字讯息置入为阵列,
造成在跳显窗显示为: [object][Object].
因为讯息中被转为阵列了.

我的修改如下:
开启 flow.php 文件, 前往行数: 113
将:
  1. $result['message'] = $spe_array;
复制代码
修改为:

  1. if(is_array($spe_array) && count($spe_array)>0){ //先判断是否为阵列.当成立时即转换成以下跳显窗讯息
  2. $result['message'] = sprintf($_LANG['addto_cart_success_3'] ,count($spe_array));
  3. }else{//如不是阵列即改为空的值
  4. $result['message'] = '';
  5. }
复制代码
并在您的语言文档中 languages/语言文档/common.php 加入以下:

  1. $_LANG['addto_cart_success_3'] = "商品中有 %d 项必须选择的属性。\n点击[确定]前往商品介绍页中选择属性后再加入购物车,\n点击[取消]将不会加入到购物车中。";
复制代码

回答:


假若您只是需要在购物流程的页面中直接跳显出商品属性的选择窗口, 可不要依照楼上的修改方式.
修改如下:
开启 flow.php 文件, 前往行数: 152 之下添加
  1. $result['parent_id'] = $goods->parent;
复制代码
之后开启theme/你的样膜/flow.dwt, 前往行数: 217
  1. if (confirm(result.message))
  2. {
  3. location.href = 'goods.php?id=' + result.goods_id;
  4. }
复制代码
修改为
  1. var fitting_goods = new Object();
  2. var spec_arr = new Array();
  3. var number = 1;
  4. fitting_goods.spec = spec_arr;
  5. fitting_goods.goods_id = result.goods_id;
  6. fitting_goods.number = number;
  7. fitting_goods.parent = result.parent_id;
  8. Ajax.call('flow.php?step=add_to_cart', 'goods=' + fitting_goods.toJSONString(), addToCartResponse, 'POST', 'JSON');
复制代码
这样即可以在购物流程中直接选择商品属性了.

楼主很强哦

不敢當...新手.

如果按着一楼的方法修改,在flow里面确实没问题了。但是在首页或者分类页点击“购买”按钮的时候,出现页面错误,而且不会出现本来应该有的选择规格的漂浮窗口;
如果按照二楼的方法修改,首页和分类页没问题,在flow页面点“购买”按钮仍然有[object][Object],但会出现挑选规格的飘窗。
不知有什么方法解决?
请老大们再次出山!