后台商品列表中增加商品属性的显示和修改的方法

2016-07-07 14:55 来源:www.chinab4c.com 作者:ecshop专家

因有朋友反应无法使用,我特地下载新的来测试以下流程
的确不能使用,原因是因为以下代码,直接复制以后,会在代码中增加回车符,这样就造成JS错误,以至不能使用,
为此,我就将源文件打包上传,大家可以直接使用;
此次上传,同时增加了在商品列表上,属性可以直接修改的功能,这样增加了一个文件:ajax.js
附件中,
包括3个文件
一个goods_list.htm,覆盖\admin\templates\goods_list.htm;
goods_attr.php,ajax.js放在\admin\下即可

文件请见附件......
..........29/12/2008

以下流程,能使用的,但前提是加入以下代码时,注意去掉增加的回车符(换行符)。否则JS就会错误

功能:在商品列表上,点击放大镜,显示商品所有属性以及其价格。见附件图片。


方法/步骤:
1.编辑\admin\templates\goods_list.htm 模板,在
  1. <!-- 商品搜索 -->
  2. {include file="goods_search.htm"}
复制代码
下面加入以下代码:

  1. <div id="zoomImg" style="position:absolute;display:none;width:200px; height:160px;padding:5px;cursor:hand;border:1px solid
  2. #B4DCFF;z-index:20;background:#F4F9FF"></div>
复制代码
2. 查找

  1. <span onclick="listTable.edit(this, 'edit_goods_name',
  2. {$goods.goods_id})">{$goods.goods_name|escape:html}</span>
复制代码
在这行代码前面(<span前),插入:

  1. <img src="images/icon_view.gif" title="查看属性列表"
  2. border=0 onclick="zoomImg(this,'{$goods.goods_id}')">
复制代码
3.拖到底部,在</script>前,插入以下JS函数;

  1. function zoomImg(obj,sortId){
  2. var layer = document.getElementById("zoomImg");
  3. var t=obj.offsetTop;
  4. var l=obj.offsetLeft;
  5. while(obj=obj.offsetParent){
  6. t+=obj.offsetTop;
  7. l+=obj.offsetLeft;
  8. }
  9. layer.style.left =l+100;
  10. layer.style.top = t-5;
  11. //layer.style.left =200;
  12. //layer.style.top = 120;
  13. zoomHtml="<table><tr><td>←</td><td align=right><a href=# onclick=document.getElementById
  14. ('zoomImg').style.display='none'><img src='images/menu_minus.gif' title='关闭' border=0></a></td></tr><tr><td height=130
  15. colspan=2><IFRAME frameBorder=0 frameSpacing=0 height=100% marginHeight=0 marginWidth=0 scrolling=yes name=main
  16. src=goods_attr.php?id="+sortId+" width=300></IFRAME>";
  17. zoomTime=setTimeout("showZoomImg()",1000);
  18. }
  19. function hideZoomImg(){
  20. var layer = document.getElementById("zoomImg");
  21. clearTimeout(zoomTime);
  22. layer.style.display='none';
  23. zoomHtml="";
  24. }
  25. function showZoomImg(){
  26. var layer = document.getElementById("zoomImg");
  27. layer.innerHTML=zoomHtml;
  28. layer.style.display='';
  29. }
复制代码
以上模板编辑完成。
4,将以下代码保存goods_attr.php文件,保存在\admin下:

  1. <?php
  2. define('IN_ECS', true);
  3. require(dirname(__FILE__) . '/includes/init.php');
  4. require_once(ROOT_PATH . '/admin/includes/lib_goods.php');
  5. include_once(ROOT_PATH . '/includes/cls_image.php');
  6. if ($_REQUEST['id'])
  7. {
  8. $sql= 'SELECT goods_attr_id,goods_id,attr_value,attr_price FROM ' .$ecs->table('goods_attr').
  9. ' WHERE goods_id='.$_REQUEST['id'].' ORDER BY goods_attr_id';
  10. $res= $db->query($sql);
  11. $arr= array();
  12. echo "<link href=styles/general.css rel=stylesheet type=text/css />";
  13. echo "<link href=styles/main.css rel=stylesheet type=text/css />";
  14. echo "当前属性库存:<br>";
  15. while ($row = $db->fetchRow($res))
  16. {
  17. if ($row['attr_price']=="" or $row['attr_price']==0)
  18. {
  19. $price="";
  20. }else{
  21. $price="属性价格:".$row['attr_price'];
  22. }
  23. echo "名称:".$row['attr_value']." ".$price."<br>";
  24. }

  25. }
  26. ?>
复制代码
好,大功告成!
附加说明:
1.以上针对版本:2.6.1,其他版本请自己测试增加是否适用,版本不太低的情况下,我认为适用的。
2.以上代码所涉及的图片,均在官方版本\admin\images下存在的,无须另找。
3.图中出现的库存数量,是我增加的“商品属性与库存关联”的功能(需要此功能,可联系我QQ9921841)。而以上代码不会涉及此项,可直接按照以上步骤操作,无须顾虑。


回答:
沙发!!!
不错的功能!

http://bbs.ecshop.com/thread-43215-1-1.html
方法在这里 祝你好运

楼上的。。。好像不同的哈。。。我这里是后台的

很好很强大 正需要这个功能呢

这个有问题用了但是不显示

不能用点击没有一点反映状态栏显示“网页有错误”

楼上是不是JS代码没加呢?

我也不能用,点击没有一点反映,什么提示也没有
JS代码加了。一步一步按楼主的方法改的。

可行么。。

因有朋友反应无法使用,我特地下载新的ECSHOP来测试添加流程
的确不能使用,原因是因为代码直接复制以后,会在代码中增加回车符,这样就造成JS错误,以至不能使用,
为此,我就将源文件打包上传,大家可以直接使用;
此次上传,同时增加了在商品列表上,属性可以直接修改的功能,这样增加了一个文件:ajax.js
附件中,
包括3个文件
一个goods_list.htm,覆盖\admin\templates\goods_list.htm;
goods_attr.php,ajax.js放在\admin\下即可
文件请见一楼附件......

有问题用了但是不显示

正需要这个功能












----------------------------------------------------------------------------------------------------------
欣喜购物www.xxgou.com

原帖由 112602345 于 2008-12-30 00:38 发表
有问题用了但是不显示


如果你直接复制帖子上的代码
你注意一下那些代码,去掉多余的换行符

我是下载的附件,不显示