jquery创建一个ajax关键词数据搜索实现思路


Posted in Javascript onFebruary 26, 2013

 在web开发过程当中,我们经常需要在前台页面输入关键词进行数据的搜索,我们通常使用的搜索方式是将搜索结果用另一个页面显示,这样的方式对于搭建高性能网站来说不是最合适的,今天给大家分享一下如何使用 jQuery,MySQL 和 Ajax创建简单和有吸引力的 Ajax 搜索,这是继《使用jQuery打造一个实用的数据传输模态弹出窗体》第二篇jquery项目实际运用的教程,希望大家在开发项目的时候能够根据自己的实际情况灵活运用

点击搜索默认显示所有的结果

jquery创建一个ajax关键词数据搜索实现思路

输入A之后显示的搜索结果

jquery创建一个ajax关键词数据搜索实现思路

输入 p之后显示的搜索结果

jquery创建一个ajax关键词数据搜索实现思路

没有找到相关的搜索词页面

jquery创建一个ajax关键词数据搜索实现思路

演示 -点击下面的搜索按钮搜索数据

文件结构 主要用到几个文件  index.php首页 dbcon.php数据库连接文件 search.php搜索处理页面

jquery创建一个ajax关键词数据搜索实现思路

第一步创建一个ajax_search的数据库,紧接着创建一个ajax_search表

CREATE TABLE `ajax_search` ( 
`id` int(11) NOT NULL auto_increment, 
`FirstName` varchar(50) NOT NULL, 
`LastName` varchar(50) NOT NULL, 
`Age` int(11) NOT NULL, 
`Hometown` varchar(50) NOT NULL, 
`Job` varchar(50) NOT NULL, 
PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;

HTML  :index.php--程序主页面
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Ajax 教程:使用jquery和mysql创建一个ajax搜索</title> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script> 
<link rel="stylesheet" type="text/css" media="screen" href="css.css" /> 
</head> 
<script language="javascript"> 
$(document).ready(function(){ 
//显示加载条 
function showLoader(){ 
$('.search-background').fadeIn(200); 
} 
//隐藏加载条 
function hideLoader(){ 
$('#sub_cont').fadeIn(1500); 
$('.search-background').fadeOut(200); 
}; 
$('#search').keyup(function(e) { 
if(e.keyCode == 13) { 
showLoader(); 
$('#sub_cont').fadeIn(1500); 
$("#content #sub_cont").load("search.php?val=" + $("#search").val(), hideLoader()); 
} 
}); 
$(".searchBtn").click(function(){ 
//显示进度 
showLoader(); $('#sub_cont').fadeIn(1500); 
$("#content #sub_cont").load("search.php?val=" + $("#search").val(), hideLoader()); 
}); 
}); 
</script> 
<body> 
<h1>Ajax 教程:使用jquery和mysql创建一个ajax搜索</h1> 
<div class="textBox"> 
<input type="text" value="" maxlength="100" name="searchBox" id="search"> 
<div class="searchBtn"> 
  
</div> 
</div> 
<br clear="all" /> 
<div id="content"> 
<div class="search-background"> 
<label><img src="loader.gif" alt="" /></label> 
</div> 
<div id="sub_cont"> 
</div> 
</div> 
</body> 
</html>

DB Connect:dbcon.php--数据库连接文件
<?php 
//数据库连接函数 
$link = mysql_connect('localhost', 'root', '你的密码'); 
mysql_select_db('ajax_demo',$link);//选择数据库连接 
?>

搜索结果页面search.php代码如下
<?php 
function checkValues($value) 
{ 
// 使用此函数对所有这些值都要检查防止 sql 注入和跨站点脚本 
//除去字符串开头和末尾的空格或其他字符 
$value = trim($value); 
// Stripslashes 
if (get_magic_quotes_gpc()) { 
//删除由 addslashes() 函数添加的反斜杠,该函数用于清理从数据库或 HTML 表单中取回的数据。 
$value = stripslashes($value); 
} 
//转换所有的 <, >字符 
$value = strtr($value,array_flip(get_html_translation_table(HTML_ENTITIES))); // 剥去 HTML的标签 
$value = strip_tags($value); 
// 引用值 
$value = mysql_real_escape_string($value); 
return $value; 
} 
include("dbcon.php");//加载数据库连接文件 
$rec = checkValues($_REQUEST['val']); 
//获取table内容 
if($rec) 
{ 
$sql = "select * from ajax_search where FirstName like '%$rec%' or LastName like '%$rec%' or Age like '%$rec%' or Hometown like '%$rec%'"; 
} 
else 
{ 
$sql = "select * from ajax_search"; 
} 
$rsd = mysql_query($sql);//查询这条语句 
$total = mysql_num_rows($rsd);//返回结果集中行的数目 
?> 
<!--循环输出结果--> 
<?php 
echo "<h2>搜索结果</h2>"; 
echo "<table border='0' id='content' cellspacing='0' cellpadding='0'> 
<tr bgcolor='#FFFFCC'> 
<th>姓名</th> 
<th>昵称</th> 
<th>年龄</th> 
<th>住址</th> 
<th>职业</th> 
</tr>"; 
while ($row = mysql_fetch_assoc($rsd)) 
{ 
echo "<tr class='each_rec'>"; 
echo "<td>" . $row['FirstName'] . "</td>"; 
echo "<td>" . $row['LastName'] . "</td>"; 
echo "<td>" . $row['Age'] . "</td>"; 
echo "<td>" . $row['Hometown'] . "</td>"; 
echo "<td>" . $row['Job'] . "</td>"; 
echo "</tr>"; 
} 
echo "</table>"; 
if($total==0){ echo '<div class="no-rec">No Record Found !</div>';}?>

checkValues函数过滤字符串防止sql注入和跨站点脚本攻击,mysql_query($sql);用来查询语句,mysql_fetch_assoc()用来循环输出结果,怎么样是不是很简单,如果你的项目有需要,可以直接使用这个代码
Javascript 相关文章推荐
JavaScript下申明对象的几种方法小结
Oct 02 Javascript
加速IE的Javascript document输出的方法
Dec 02 Javascript
等待指定时间后自动跳转或关闭当前页面的js代码
Jul 09 Javascript
怎么选择Javascript框架(Javascript Framework)
Nov 22 Javascript
jquery 合并内容相同的单元格(示例代码)
Dec 13 Javascript
JS判断网页广告是否被浏览器拦截过滤的代码
Apr 05 Javascript
7个jQuery最佳实践
Jan 12 Javascript
针对BootStrap中tabs控件的美化和完善(推荐)
Jul 06 Javascript
Three.js学习之文字形状及自定义形状
Aug 01 Javascript
JavaScript实现的贝塞尔曲线算法简单示例
Jan 30 Javascript
如何利用node转发请求详解
Sep 17 Javascript
vue使用refs获取嵌套组件中的值过程
Mar 31 Vue.js
jQuery创建平滑的页面滚动(顶部或底部)
Feb 26 #Javascript
JavaScript建立一个语法高亮输入框实现思路
Feb 26 #Javascript
js批量设置样式的三种方法不推荐使用with
Feb 25 #Javascript
js 获取计算后的样式写法及注意事项
Feb 25 #Javascript
js调用webservice中的方法实现思路及代码
Feb 25 #Javascript
JS获取页面input控件中所有text控件并追加样式属性
Feb 25 #Javascript
JS+CSS制作DIV层可(最小化/拖拽/排序)功能实现代码
Feb 25 #Javascript
You might like
玛琪朵 Macchiato
2021/03/03 咖啡文化
PHP为表单获取的URL 地址预设 http 字符串函数代码
2010/05/26 PHP
PHP图片裁剪函数(保持图像不变形)
2014/05/04 PHP
PHP中怎样防止SQL注入分析
2014/10/23 PHP
php中照片旋转 (orientation) 问题的正确处理
2017/02/16 PHP
jquery命令汇总,方便使用jquery的朋友
2012/06/26 Javascript
Window.Open如何在同一个标签页打开
2014/06/20 Javascript
JS中的eval 为什么加括号
2016/04/13 Javascript
详解JavaScript中this关键字的用法
2016/05/26 Javascript
jQuery EasyUi 验证功能实例解析
2017/01/06 Javascript
解决layui 复选框等内置控件不显示的问题
2018/08/14 Javascript
vue 优化CDN加速的方法示例
2018/09/19 Javascript
JS使用cookie保存用户登录信息操作示例
2019/05/30 Javascript
Vue2.0 实现页面缓存和不缓存的方式
2019/11/12 Javascript
Python的迭代器和生成器使用实例
2015/01/14 Python
Django与JS交互的示例代码
2017/08/23 Python
Python_LDA实现方法详解
2017/10/25 Python
Python 实现某个功能每隔一段时间被执行一次的功能方法
2018/10/14 Python
OpenCV3.0+Python3.6实现特定颜色的物体追踪
2019/07/23 Python
python opencv实现简易画图板
2020/08/27 Python
paramiko使用tail实时获取服务器的日志输出详解
2020/12/06 Python
利用css3如何设置没有上下边的列表间隔线
2017/07/03 HTML / CSS
美国孕妇装品牌:Destination Maternity
2018/02/04 全球购物
俄罗斯香水和化妆品购物网站:Л’Этуаль
2018/05/10 全球购物
西班牙美妆电商:Perfume’s Club(有中文站)
2018/08/08 全球购物
英国空调、除湿机和通风设备排名第一:Air Con Centre
2019/02/25 全球购物
某公司C#程序员面试题笔试题
2014/05/26 面试题
英文邀请函
2015/02/02 职场文书
人口与计划生育责任书
2015/05/09 职场文书
2015秋学期开学寄语
2015/05/28 职场文书
小学生读书笔记范文
2015/06/30 职场文书
研究生毕业登记表的自我鉴定范文
2019/07/15 职场文书
解决MySQL存储时间出现不一致的问题
2021/04/28 MySQL
Python数据结构之队列详解
2022/03/21 Python
OpenCV项目实践之停车场车位实时检测
2022/04/11 Python
Python如何利用pandas读取csv数据并绘图
2022/07/07 Python