thinkphp简易搜索
需求:
用户输入关键词,选项卡的每个选项输出一个分类的列表内容,分类有文章、ppt、学习。
实现过程:
视图中用户输入的关键词post给控制器,控制器对这个关键词做三次模糊查询处理,因为是三个分类对应了三张表,每次处理后得到的结果集分别传给视图,视图中把这三个结果集分别循环输出到选项卡的不同选项上,任务close。
代码:(冗余部分自行删改,因为是demo,所以视图写的太随意了。。。)
视图:
<!doctype html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta content="yes" name="apple-mobile-web-app-capable">
<meta content="yes" name="apple-touch-fullscreen">
<meta content="telephone=no,email=no" name="format-detection">
<title>搜索</title>
<style type="text/css">
*{margin:0;padding:0;list-style-type:none;}
a,img{border:0;}
body{font:12px/180% Arial, Helvetica, sans-serif, "新宋体";}
.tab1{width:100%;border-top:#cccccc solid 1px;margin:50px auto 0 auto;}
.menu{height:28px;border-right:#cccccc solid 1px;}
.menu li{float:left;width:300px;text-align:center;line-height:28px;height:28px;cursor:pointer;border-left:#cccccc solid 1px;color:#666;font-size:14px;overflow:hidden;background:#E0E2EB;}
.menu li.off{background:#FFFFFF;color:#336699;font-weight:bold;}
.menudiv{height:200px;border-left:#cccccc solid 1px;border-right:#cccccc solid 1px;border-top:0;background:#fefefe}
.menudiv div{padding:15px;line-height:28px;}
</style>
</head>
<body>
<form action="./index.php?m=Home&c=Index&a=search" method="post">
关键字:
<input type="text" name="key" />
<input type="submit" name="sub" value="搜索" />
</form>
<div class="tab1" id="tab1">
<div class="menu">
<ul>
<li id="one1" onclick="setTab('one',1)">文章</li>
<li id="one2" onclick="setTab('one',2)">ppt</li>
<li id="one3" onclick="setTab('one',3)">学习</li>
</ul>
</div>
<div class="menudiv">
<div id="con_one_1">
<volist name="article" id="vo">
{$vo.title}<br/>
</volist>
</div>
<div id="con_one_2" style="display:none;">
<volist name="ppt" id="vo">
{$vo.title}<br/>
</volist>
</div>
<div id="con_one_3" style="display:none;">
<volist name="study" id="vo">
{$vo.title}<br/>
</volist>
</div>
</div>
</div>
</body>
<script type="text/javascript">
function setTab(name,cursel){
cursel_0=cursel;
for(var i=1; i<=links_len; i++){
var menu = document.getElementById(name+i);
var menudiv = document.getElementById("con_"+name+"_"+i);
if(i==cursel){
menu.className="off";
menudiv.style.display="block";
}
else{
menu.className="";
menudiv.style.display="none";
}
}
}
function Next(){
cursel_0++;
if (cursel_0>links_len)cursel_0=1
setTab(name_0,cursel_0);
}
var name_0='one';
var cursel_0=1;
//var ScrollTime=0;//循环周期(毫秒)
var links_len,iIntervalId;
onload=function(){
var links = document.getElementById("tab1").getElementsByTagName('li')
links_len=links.length;
for(var i=0; i<links_len; i++){
links[i].onmouseover=function(){
clearInterval(iIntervalId);
this.onmouseout=function(){
iIntervalId = setInterval(Next,ScrollTime);;
}
}
}
document.getElementById("con_"+name_0+"_"+links_len).parentNode.onmouseover=function(){
clearInterval(iIntervalId);
this.onmouseout=function(){
iIntervalId = setInterval(Next,ScrollTime);;
}
}
setTab(name_0,cursel_0);
iIntervalId = setInterval(Next,ScrollTime);
}
</script>
</html>
控制器:
public function search(){
if($_POST['key'] || !empty($_POST['key']) ){
$key = $_POST['key'];
$map['title|content'] = array('like','%'.$key .'%');
$res1 = M('article')->where($map)->select();
$map['title|content'] = array('like','%'.$key .'%');
$res2 = M('ppt')->where($map)->select();
$map['title|content'] = array('like','%'.$key .'%');
$res3 = M('study')->where($map)->select();
$this->assign('article',$res1);
$this->assign('ppt',$res2);
$this->assign('study',$res3);
}
//dump($res3);
$this->display();
}
谢谢大家!
最新文章
- iOS开发UI篇—程序启动原理和UIApplication
- 《more effective C++》条款10 防止构造函数里的资源泄露
- 一个月的时间--java从一无所有到能用框架做点东西出来
- 介绍一个python的新的web framework——karloop框架
- linux下一个Oracle11g RAC建立(四)
- SQL SERVER运维日记--收缩数据库
- 3.Git基础-查看当前文件状态、跟踪新文件、暂存文件、忽略文件、提交更新、移除文件、移动文件
- STL初始化initializer_list
- Linux实战教学笔记49:Zabbix监控平台3.2.4(一)搭建部署与概述
- 深入学习css伪类和伪元素及其用法
- [NOIP2017赛前复习第二期]复赛考试技巧与模版-普及组
- python(字符串、列表、字典、元组、集合)的常用内置方法
- 两场CF
- linux命令学习之:ifconfig
- sort.js
- android调用系统的自定义裁剪后得到的图片不清晰,使用MediaStore.EXTRA_OUTPUT获取缓存下的清晰图片
- 关于service相关知识的认识
- c++与js脚本交互,C++调用JS函数/JS调用C++函数
- 使用adb工具调试出现error:device offline
- elasticsearch kibana简单查询