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 相关文章推荐
js获取元素在浏览器中的绝对位置
Jul 24 Javascript
JS 如何获取radio选中后的值及不选择取radio的值
Oct 28 Javascript
Node.js中HTTP模块与事件模块详解
Nov 14 Javascript
Javascript前端UI框架Kit使用指南之kitjs的对话框组件
Nov 28 Javascript
使用JavaScript获取地址栏参数的方法
Dec 19 Javascript
javascript获取网页宽高方法汇总
Jul 19 Javascript
AngularJS 路由详解和简单实例
Jul 28 Javascript
理解javascript中的闭包
Jan 11 Javascript
详解Vue.js搭建路由报错 router.map is not a function
Jun 27 Javascript
基于ES6作用域和解构赋值详解
Nov 03 Javascript
Vue.directive 自定义指令的问题小结
Mar 04 Javascript
详解vuex之store拆分即多模块状态管理(modules)篇
Nov 13 Javascript
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
PHP stripos()函数及注意事项的分析
2013/06/08 PHP
基于PHP文件操作的详细诠释
2013/06/21 PHP
详解PHP导入导出CSV文件
2014/11/03 PHP
PHP学习记录之常用的魔术常量详解
2019/12/12 PHP
仿校内登陆框,精美,给那些很厉害但是没有设计天才的程序员
2008/11/24 Javascript
JS实现点击链接取消跳转效果的方法
2014/01/24 Javascript
JQuery+EasyUI轻松实现步骤条效果
2016/02/22 Javascript
JS实现的在线调色板实例(附demo源码下载)
2016/03/01 Javascript
jQuery.deferred对象使用详解
2016/03/18 Javascript
JavaScript鼠标特效大全
2016/09/13 Javascript
jQuery实现的自定义滚动条实例详解
2016/09/20 Javascript
微信 java 实现js-sdk 图片上传下载完整流程
2016/10/21 Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
2017/01/12 Javascript
assert()函数用法总结(推荐)
2017/01/25 Javascript
jQuery插件zTree实现获取一级节点数据的方法
2017/03/08 Javascript
jquery实现放大镜简洁代码(推荐)
2017/06/08 jQuery
vue-cli3项目展示本地Markdown文件的方法
2019/06/07 Javascript
[03:09]2014DOTA2国际邀请赛 赛场上的美丽风景线 中国Coser也爱DOTA2
2014/07/20 DOTA
[04:49]期待西雅图之战 2016国际邀请赛中国区预选赛WINGS战队赛后采访
2016/06/29 DOTA
Python多进程编程技术实例分析
2014/09/16 Python
python模拟鼠标拖动操作的方法
2015/03/11 Python
使用Protocol Buffers的C语言拓展提速Python程序的示例
2015/04/16 Python
教大家使用Python SqlAlchemy
2016/02/12 Python
Python 多进程并发操作中进程池Pool的实例
2017/11/01 Python
Python编程求解二叉树中和为某一值的路径代码示例
2018/01/04 Python
使用pandas读取csv文件的指定列方法
2018/04/21 Python
Python2和Python3之间的str处理方式导致乱码的讲解
2019/01/03 Python
Python 把序列转换为元组的函数tuple方法
2019/06/27 Python
HTML5+WebSocket实现多文件同时上传的实例
2016/12/29 HTML / CSS
Cotton On美国网站:澳洲时装连锁品牌
2016/10/25 全球购物
公证委托书大全
2014/04/04 职场文书
校园广播站开场白
2015/06/01 职场文书
禁毒心得体会范文
2016/01/15 职场文书
python实现黄金分割法的示例代码
2021/04/28 Python
解决使用了nginx获取IP地址都是127.0.0.1 的问题
2021/09/25 Servers
Android开发实现极为简单的QQ登录页面
2022/04/24 Java/Android