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入门之事件、cookie、定时等
Oct 21 Javascript
JavaScript代码简单实现求杨辉三角给定行的最大值
Oct 29 Javascript
jQuery 1.9使用$.support替代$.browser的使用方法
May 27 Javascript
快速学习jQuery插件 Cookie插件使用方法
Dec 01 Javascript
JS实现重新加载当前页面或者父页面的几种方法
Nov 30 Javascript
Vue声明式渲染详解
May 17 Javascript
javascript 封装Date日期类实例详解
May 28 Javascript
Node.js使用orm2进行update操作时关联字段无法修改的解决方法
Jun 13 Javascript
Node.js+Express+MySql实现用户登录注册功能
Jul 10 Javascript
Mint UI组件库CheckList使用及踩坑总结
Dec 20 Javascript
详解vue-cli3开发Chrome插件实践
May 29 Javascript
微信小程序scroll-view不能左右滑动问题的解决方法
Jul 09 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
set_include_path和get_include_path使用及注意事项
2013/02/02 PHP
php全局变量和类配合使用深刻理解
2013/06/05 PHP
php实现图片局部打马赛克的方法
2015/02/11 PHP
php商品对比功能代码分享
2015/09/24 PHP
学习php设计模式 php实现备忘录模式(Memento)
2015/12/09 PHP
php封装的图片(缩略图)处理类完整实例
2016/10/19 PHP
ThinkPHP中类的构造函数_construct()与_initialize()的区别详解
2017/03/13 PHP
浅谈Javascript嵌套函数及闭包
2010/11/09 Javascript
EXTJS FORM HIDDEN TEXTFIELD 赋值 使用value不好用的问题
2011/04/16 Javascript
40个有创意的jQuery图片、内容滑动及弹出插件收藏集之一
2011/12/31 Javascript
Jquery 自定义动画概述及示例
2013/03/29 Javascript
js弹窗返回值详解(window.open方式)
2014/01/11 Javascript
js简单的表格添加行和删除行操作示例
2014/03/31 Javascript
jquery操作checkbox示例分享
2014/07/21 Javascript
使用Javascript简单实现图片无缝滚动
2014/12/05 Javascript
JS中判断字符串中出现次数最多的字符及出现的次数的简单实例
2016/06/03 Javascript
JS实现仿百度文库评分功能
2017/01/12 Javascript
微信小程序-获得用户输入内容
2017/02/13 Javascript
AngularJS创建一个上传照片的指令实例代码
2018/02/24 Javascript
微信小程序从注册账号到上架(图文详解)
2019/07/17 Javascript
JS实现烟花爆炸效果
2020/03/10 Javascript
原生javascript如何实现共享onload事件
2020/07/03 Javascript
简单介绍Python中的struct模块
2015/04/28 Python
Python运行报错UnicodeDecodeError的解决方法
2016/06/07 Python
Android分包MultiDex策略详解
2017/10/30 Python
Python多层装饰器用法实例分析
2018/02/09 Python
Python去除字符串前后空格的几种方法
2019/03/04 Python
Python爬取腾讯视频评论的思路详解
2019/12/19 Python
零基础学Python之前需要学c语言吗
2020/07/21 Python
Python生成器传参数及返回值原理解析
2020/07/22 Python
html5 offlline 缓存使用示例
2013/06/24 HTML / CSS
九月份红领巾广播稿
2014/01/22 职场文书
幼儿园家长评语大全
2014/04/16 职场文书
消防志愿者活动方案
2014/08/23 职场文书
资源环境与城乡规划管理专业自荐书
2014/09/26 职场文书
Go语言基础切片的创建及初始化示例详解
2021/11/17 Golang