html中:
<script type="text/javascript" src="jquery.min.js"></script>
<select name="typeid" "window.location=this.value;">
<option value="">---分类---</option>
<volist name="rel" id="vo">
<option value="{:U('index/article',array('typeid'=>$vo['id']))}" <if condition="$vo['id'] eq $data">selected="selected"</if>>{$vo['name']}</option>
</volist>
</select>
controller中:
//文章列表
public function article(){
if(!session('username')){
$this->redirect('login/login');
}
$data['typeid']=I('typeid'); //获取select分类选项被选中的typeid值
if(I('typeid')){ //如果有传值则分类显示,否则显示全部列表内容
//分页
$article = M('article');
$count = $article->where('typeid='.$data['typeid'])->count(); //查询该分类总记录数
$Page = new \Think\Page($count,10); // 实例化分页类 传入总记录数和每页显示的记录数(10)
$Page->setConfig('header', '<li class="rows">共<b>%TOTAL_ROW%</b>条记录 第<b>%NOW_PAGE%</b>页/共<b>%TOTAL_PAGE%</b>页</li>');
$Page->setConfig('prev', '上一页');
$Page->setConfig('next', '下一页');
$Page->setConfig('last', '末页');
$Page->setConfig('first', '首页'); //当有一定页数时才会显示首页和末页,页数过少不显示
$Page->setConfig('theme', '%FIRST%%UP_PAGE%%LINK_PAGE%%DOWN_PAGE%%END%%HEADER%');
$Page->lastSuffix = false; //最后一页不显示为总页数
$show = $Page->show(); //分页显示输出
// 进行分页数据查询 注意limit方法的参数要使用Page类的属性
$list = $article->where('typeid='.$data['typeid'])->order('wid desc')->limit($Page->firstRow.','.$Page->listRows)->select();
}else{
//分页
$article = M('article');
$count = $article->count();
$Page = new \Think\Page($count,10);
$Page->setConfig('header', '<li class="rows">共<b>%TOTAL_ROW%</b>条记录 第<b>%NOW_PAGE%</b>页/共<b>%TOTAL_PAGE%</b>页</li>');
$Page->setConfig('prev', '上一页');
$Page->setConfig('next', '下一页');
$Page->setConfig('last', '末页');
$Page->setConfig('first', '首页');
$Page->setConfig('theme', '%FIRST%%UP_PAGE%%LINK_PAGE%%DOWN_PAGE%%END%%HEADER%');
$Page->lastSuffix = false;
$show = $Page->show();
$list = $article->order('wid desc')->limit($Page->firstRow.','.$Page->listRows)->select();
}
$rel=M('article_type')->select();
$this->assign('rel',$rel);
$this->assign('data',$data['typeid']); //传类型ID值到select中
$this->assign('list',$list);
$this->assign('page',$show);
$this->display();
}