商品对比、排序(在Yii框架中的应用)
2016-07-29 09:38
369 查看
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>
相关文章推荐
- 关于doitphp,thinkphp,yii,ci,doophp等框架的性能对比测试
- 应用最广的十大Javascript框架以及优缺点对比
- IOS 与ANDROID框架及应用开发模式对比一
- 新浪SAE云平台之Yii框架应用搭建
- Yii框架官方指南系列50——专题:控制台应用
- YII和qeephp 框架的性能对比
- IOS 与ANDROID框架及应用开发模式对比一
- IOS 与ANDROID框架及应用开发模式对比一
- 初识yii Framework 框架 建立第一个 Yii 应用
- Yii 框架创建自己的 web 应用
- 关于doitphp,thinkphp,yii,ci,doophp等框架的性能对比测试
- 初识yii Framework 框架 建立第一个 Yii 应用
- Winxp下建立第一个 Yii 框架应用(连接MYSQL数据库)
- IOS 与ANDROID框架及应用开发模式对比一
- wamp中Yii框架配置应用
- Yii框架layout【布局】的应用
- PHP -- Yii 框架之快速建立web应用骨架
- Yii框架的应用实例--博客搭建
- Yii框架中 find findAll 查找出制定的字段的方法对比
- YII 框架使用之——创建应用