为了账号安全,请及时绑定邮箱和手机立即绑定

商品详情页列表实现

标签:
PHP JavaScript

        最近写了商城商品功能,对于商城商品,比如:手机;不同的颜色,不同的内存,不容的制式,等等条件,会有不同的价格,当在选择不同商品的时候价格也就不同

https://img1.sycdn.imooc.com//5b3e02ed00015fce12360765.jpg


         首先,这里的颜色-版本-购买方式-套餐都是数据库里面的数据,只需要读出来进行呈现即可。
 这里来说下,点选商品的时候是怎样进行查询价格的:首先每个条件都有一个唯一的ID,然后当点选的时候获取到此条件的ID,附加到URL地址当中进行后台传输,后台直接REQUEST获取到地址里面的条件参数进行查询获取价格;例:其中一个条件的链接:<a href='http://www.*****.com/*****.html?colorn=18&edition=10&...&.....'>颜色名字</a>如果有多个条件,就在后面把条件附加进去。
 
         然后,根据这些条件就能查询出每一个条件对应的商品价格,这样就能做到不同的颜色-不同的版本-不同的内存有不同的价格;

        还有一点,就是前台样式的展示,在点选之后这个条件边框就会变成红色;对于这个实现也很简单:在上一步的链接地址当中,后台获取到参数,然后再回传到前台,前台在遍历条件展示的时候 IF 一下后台回传的参数是否和条件集合里面的ID相等,如果相等就添加一个class样式,这样也就实现了前台对应的点选之后变颜色。
        对于上步功能,下面用代码展示,此处只用PHP进行演示,我会一步一步进行注释,其它语言逻辑一样:
前台:
<dl class="dl-horizontal clearfix">
    <dt class="pull-left">颜&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;色:</dt>
        <dd class="pull-left">
        <!--{foreach $ys_names as $key => $colname}-->    //这里是循环展示颜色列表数据
            <a class="<!--{if $color_id == $ys_ids[$key]}-->select<!--{/if}-->" 
            href="/lease/detail.php?basiid=<!--{$bas_id}-->&dondid=<!--{$dond_id}-->&colorid=<!--{$ys_ids[$key]}-->&rid=<!--{$rid_id}-->&zid=<!--{$zid_id}-->">
            <!--{$colname}-->
            </a>
        <!--{/foreach}-->
     </dd>
</dl>

注释: 这里的
<a class="<!--{if $color_id == $ys_ids[$key]}-->select<!--{/if}-->" href=""><!--{$colname}--></a>
是根据后台回传的条件参数进行判断,如果相等,就添加选中样式;
<a class="" href="/lease/detail.php?basiid=<!--{$bas_id}-->&dondid=<!--{$dond_id}-->&colorid=<!--{$ys_ids[$key]}-->&rid=<!--{$rid_id}-->&zid=<!--{$zid_id}-->"><!--{$colname}--></a>
这里的href后面跟的就是传输的条件参数

后台(这里只选取一个条件进行说明,多条件是一样的操作):
 
$color_id = intval($_GET['colorid']);//颜色
 $smarty->assign('color_id',$color_id);//这里我用的是SMARTY模板$smarty->assign()是里面的绑定数据到变量操作;

然后进行查询:
$san_product_sql = "SELECT r.id,r.basicid,r.donid,r.rid,r.colorid,r.zid,r.price,r.monthprice,r.pbrand,w.ptype,w.description,pb.brand_name,co.color_name,cs.standard_name,cc.capacity_name
FROM    s_phone_lease_relattable r
LEFT JOIN s_phone_warehouse_lease_basic_detail w ON r.basicid = w.phone_basic_id
LEFT JOINs_phone_config_brand pb ONr.pbrand = pb.id
LEFT JOINs_phone_config_color co ON  r.colorid = co.id
LEFT JOINs_phone_config_standard cs  ON  r.zid = cs.id
LEFT JOINs_phone_config_capacity cc  ON  r.rid = cc.id
WHERE r.basicid = '$bas_id'  AND r.donid = '$dond_id'  AND r.colorid = '$color_id'  AND r.rid = '$rid_id'  AND r.zid = '$zid_id'";

这里WHERE后面跟的就是点选的条件,包括,颜色-内存-版本;此条语句就包含了不同需要的价格;

到此,此功能就实现了,然后就可以进行支付功能和后续订单操作了!  



点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消