当前位置:首页 - 帝国教程 - 帝国cms进阶 - 帝国cms商城多属性多价格7.0多值字段方法

帝国cms商城多属性多价格7.0多值字段方法

时间:2014-06-08来源: 作者: 文章热度:
点评: 帝国cms7.0多值字段。不同属性不同价格。首先增加一个text类型的多值字段。内容模板中处理此字段:<?php$find=array("::::::","||||||");$replace=array("|","|");$duozhiar
... 帝国cms7.0多值字段。不同属性不同价格。

首先增加一个text类型的多值字段。



内容模板中处理此字段:

<?php
$find=array("::::::","||||||");
$replace=array("|","|");
$duozhiarr=str_replace($find,$replace,$navinfor['duozhi']);
$duozhiarr=explode("|",$duozhiarr);


//遍历数组、获取此字段的属性
foreach( $duozhiarr as $k=>$v )
{
        if( $k % 2 == 0)
        {
                echo '<div class="duozhikey" style="padding:5px 10px 5px 10px;">'.$v.'</div>';
        }
        else
        {
                $duozhival[]=$v;
        }
}

//遍历数组获取此字段的值。
$i=0;
foreach( $duozhival as $v )
{
        $i++;
        if($i!=1)
        {
                $duozhivalcss=' duozhivalclass';
        }
        echo '<div class="duozhival'.$duozhivalcss.'">您选择的型号价格为:¥<strong class="duozhiinputval">'.$v.'</strong></div>';
}
?>


不同属性和价格已经处理好需要的参数了,利用jquery可以快捷简单的实现我们需要的效果。

先发下我jquery做的处理大家可以参考下。这是客户的模板无法给大家全部代码:

<script>
$(function(){
        //为第一个多值字段设置css样式
        $(".ly_duozhi_key").find(".duozhikey").eq(0).addClass("duozhikey_hover");
        
        $(".ly_duozhi_key").find(".duozhikey").click(function(){
                //删除样式
                $(".ly_duozhi_key > .duozhikey").removeClass("duozhikey_hover");
                //this增加样式
                $(this).addClass("duozhikey_hover");
                var thisindex = $(this).index();
                $(".ly_duozhi_val").find(".duozhival").hide();
                $(".ly_duozhi_val").find(".duozhival").eq(thisindex).show();
                //改变商品价格
                $("input[name='shopprice']").val($(".ly_duozhi_val").find(".duozhiinputval").eq(thisindex).html());
        });
})
</script>


//////////////////////////////////////////////////

内容页模板已经处理好。现在要实现不同的属性不同的价格就要修改购物车了。

1.传参:
可以用表单传递参数,也可以直接用url传递。这里推荐用表单传递参数。
<form action="/e/ShopSys/doaction.php" name="gm" method="get" target="_blank">
表单提交到 doaction.php
增加一个input 用js动态的改变他的value,这个balue就是此字段不同属性的价格提交到后台做处理
<input type="hidden" name="shopprice" value="">  

其他需要的表单这个大家参考帝国默认的即可【还需要有栏目ID和信息ID等】。

2.接受参数: 表单提交到doaction处理后倒入的是\e\ShopSys\class\ShopSysFun.php这个文件调用的是AddBuycar

打开ShopSysFun.php 1.1行下增加:setcookie("shopprices",$add['shopprice']);
以先在客户端cookie中写入表单get传递过来的价格不写cookie时间,等会表单提交以后在写一个cookie失效就可以。 这里用get也可以做到。不过相对来说还是cookie安全点


3:\e\template\ShopSys\buycar\buycar_form.php 56行下增加:
$productr[price]=$_COOKIE['shopprices'];


4:\e\template\ShopSys\buycar\buycar_order.php 57行下增加 
$productr[price]=$_COOKIE['shopprices'];



\e\ShopSys\class\ShopSysFun.php 658行下增加:

$productr[price]=$_COOKIE['shopprices'];


*****************至此结束。

1:不同属性不同价格 


2:不同属性不同价格 

 

文章TAG:帝国cms商城
上一篇:返回列表
相关帝国cms进阶
最新帝国cms进阶