您的位置:首页 > 编程语言 > PHP开发

商品对比、排序(在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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: