... 帝国cms7.0多值字段。不同属性不同价格。
首先增加一个text类型的多值字段。
内容模板中处理此字段:
$find=array("::::::","||||||");
$replace=array("|","|");
$duozhiarr=str_replace($find,$replace,$navinfor['duozhi']);
$duozhiarr=explode("|",$duozhiarr);
//遍历数组、获取此字段的属性
foreach( $duozhiarr as $k=>$v )
{
if( $k % 2 == 0)
{
echo '
}
else
{
$duozhival[]=$v;
}
}
//遍历数组获取此字段的值。
$i=0;
foreach( $duozhival as $v )
{
$i++;
if($i!=1)
{
$duozhivalcss=' duozhivalclass';
}
echo '
}
?>
不同属性和价格已经处理好需要的参数了,利用jquery可以快捷简单的实现我们需要的效果。
先发下我jquery做的处理大家可以参考下。这是客户的模板无法给大家全部代码:
$(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());
});
})
//
内容页模板已经处理好。现在要实现不同的属性不同的价格就要修改购物车了。
1.传参:
可以用表单传递参数,也可以直接用url传递。这里推荐用表单传递参数。
表单提交到 doaction.php
增加一个input 用js动态的改变他的value,这个balue就是此字段不同属性的价格提交到后台做处理
其他需要的表单这个大家参考帝国默认的即可【还需要有栏目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:不同属性不同价格