商品对比、排序(在Yii框架中的应用)

来源:互联网 发布:友宝 知乎 编辑:程序博客网 时间:2024/06/03 19:24

2.案例题目实现商品列表的对比和排序功能。3.案例完成思路要求A,完成商品列表必须有分页 。B,完成商品对比功能,要求每次对比商品为2个商品,不能多,不能少,并且如果不符合要求,要提示“必须是两个商品”。点击“对比”按钮后跳转到对比页面展示两个商品的对比。C,完成商品的排序功能,按照商品序号倒叙排列列表。

第二部分:PHP 代码实现    /*     * 商品对比     */    public function actionContrast(){        $goods_id = \Yii::$app->request->get('goods_id');        $goods_id = trim($goods_id,',');        //根据ID查询商品的详细信息        $query = new \yii\db\Query();        $where = "goods_id in($goods_id)";        $goodsInfo = $query->from(['g_goods'])->innerJoin('g_brand','g_goods.brand_id=g_brand.brand_id')->where($where)->all();        return $this->renderPartial('list',['goods'=>$goodsInfo]);    }

    /*     * 商品排序     */    public function actionSort(){        $sort = \Yii::$app->request->post('sort');        $g_sort = trim($sort,',');        //根据ID查询商品的详细信息        $query = new \yii\db\Query();        $where = "g_sort in($g_sort)";        $goodsInfo = $query->from(['g_goods'])->innerJoin('g_brand','g_goods.brand_id=g_brand.brand_id')->where($where)->all();        foreach($goodsInfo as $key => $value){            $gsort[$key] = $value['g_sort'];        }        //二维数组 根据值来排序        array_multisort($gsort,SORT_DESC,$goodsInfo);        echo json_encode($goodsInfo);    }
第三部分:html 页面<script>        //商品对比        function contrast(){            //判断是否被选中            var status = $(".checkbox");            //定义一个空的变量 来存储已被选中的选项            var str = '';            for(var i=0;i<status.length;i++){                if(status[i].checked == true){                    str +=','+ status[i].value;                }            }            //判断是否选择两件啊商品            if(str.length<3){                alert('请选择两件商品');                return false;            }else{                location.href='?r=goods/contrast&goods_id='+str;            }        }        //排序        function sort(){            var g_sort = $('input[type="number"]');            sort = '';            for(var i=0;i< g_sort.length;i++){                sort += ','+g_sort[i].value;            }            $.post('?r=goods/sort',{sort:sort},function(msg){                //将JSON数据转为对象                obj = eval("("+msg+")");                var tr = '';                for(i in obj){                    tr += '<tr class="content">'                        tr += "<td><input type='checkbox' value="+obj[i].goods_id+" class='checkbox'></td>";                        tr += "<td><input type='number' value="+obj[i].g_sort+"></td>";                        tr += "<td>"+obj[i].g_name+"</td>";                    tr += '</tr>';                }                //移除原来的数据                $(".content").remove();                //将数据追加                $("#tr").after(tr);            });        }    </script>
第四部分:table 表格<table align="center" border="1" width="800">    <tr id="tr">        <td>选项</td>        <td>序号</td>        <td>商品名称</td>    </tr>    <?php foreach($goods as $value){ ?>     <tr class="content">        <td><input type="checkbox" value="<?=$value['goods_id'];?>" class="checkbox"></td>        <td><input type="number" value="<?=$value['g_sort'];?>"></td>        <td><?= $value['g_name'];?></td>    </tr>    <?php } ?>    <tr>        <td><button onclick="contrast()" style="cursor: pointer;">对比</button></td>        <td><button onclick="sort()" style="cursor: pointer;">排序</button></td>        <td>            <a href="?r=goods/index&page=1">首页</a>            <a href="?r=goods/index&page=<?=$last?>">上一页</a>            <a href="?r=goods/index&page=<?=$next?>">下一页</a>            <a href="?r=goods/index&page=<?=$pageSum?>">尾页</a>        </td>    </tr></table>



0 0
原创粉丝点击