jquery創(chuàng)建一個(gè)ajax關(guān)鍵詞數(shù)據(jù)搜索實(shí)現(xiàn)思路
在web開發(fā)過程當(dāng)中,我們經(jīng)常需要在前臺(tái)頁(yè)面輸入關(guān)鍵詞進(jìn)行數(shù)據(jù)的搜索,我們通常使用的搜索方式是將搜索結(jié)果用另一個(gè)頁(yè)面顯示,這樣的方式對(duì)于搭建高性能網(wǎng)站來說不是最合適的,今天給大家分享一下如何使用 jQuery,MySQL 和 Ajax創(chuàng)建簡(jiǎn)單和有吸引力的 Ajax 搜索,這是繼《使用jQuery打造一個(gè)實(shí)用的數(shù)據(jù)傳輸模態(tài)彈出窗體》第二篇jquery項(xiàng)目實(shí)際運(yùn)用的教程,希望大家在開發(fā)項(xiàng)目的時(shí)候能夠根據(jù)自己的實(shí)際情況靈活運(yùn)用
點(diǎn)擊搜索默認(rèn)顯示所有的結(jié)果

輸入A之后顯示的搜索結(jié)果

輸入 p之后顯示的搜索結(jié)果

沒有找到相關(guān)的搜索詞頁(yè)面

演示 -點(diǎn)擊下面的搜索按鈕搜索數(shù)據(jù)
文件結(jié)構(gòu) 主要用到幾個(gè)文件 index.php首頁(yè) dbcon.php數(shù)據(jù)庫(kù)連接文件 search.php搜索處理頁(yè)面

第一步創(chuàng)建一個(gè)ajax_search的數(shù)據(jù)庫(kù),緊接著創(chuàng)建一個(gè)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--程序主頁(yè)面
<!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創(chuàng)建一個(gè)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(){
//顯示進(jìn)度
showLoader();
$('#sub_cont').fadeIn(1500);
$("#content #sub_cont").load("search.php?val=" + $("#search").val(), hideLoader());
});
});
</script>
<body>
<h1>Ajax 教程:使用jquery和mysql創(chuàng)建一個(gè)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--數(shù)據(jù)庫(kù)連接文件
<?php
//數(shù)據(jù)庫(kù)連接函數(shù)
$link = mysql_connect('localhost', 'root', '你的密碼');
mysql_select_db('ajax_demo',$link);//選擇數(shù)據(jù)庫(kù)連接
?>
搜索結(jié)果頁(yè)面search.php代碼如下
<?php
function checkValues($value)
{
// 使用此函數(shù)對(duì)所有這些值都要檢查防止 sql 注入和跨站點(diǎn)腳本
//除去字符串開頭和末尾的空格或其他字符
$value = trim($value);
// Stripslashes
if (get_magic_quotes_gpc()) {
//刪除由 addslashes() 函數(shù)添加的反斜杠,該函數(shù)用于清理從數(shù)據(jù)庫(kù)或 HTML 表單中取回的數(shù)據(jù)。
$value = stripslashes($value);
}
//轉(zhuǎn)換所有的 <, >字符
$value = strtr($value,array_flip(get_html_translation_table(HTML_ENTITIES)));
// 剝?nèi)?HTML的標(biāo)簽
$value = strip_tags($value);
// 引用值
$value = mysql_real_escape_string($value);
return $value;
}
include("dbcon.php");//加載數(shù)據(jù)庫(kù)連接文件
$rec = checkValues($_REQUEST['val']);
//獲取table內(nèi)容
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);//查詢這條語(yǔ)句
$total = mysql_num_rows($rsd);//返回結(jié)果集中行的數(shù)目
?>
<!--循環(huán)輸出結(jié)果-->
<?php
echo "<h2>搜索結(jié)果</h2>";
echo "<table border='0' id='content' cellspacing='0' cellpadding='0'>
<tr bgcolor='#FFFFCC'>
<th>姓名</th>
<th>昵稱</th>
<th>年齡</th>
<th>住址</th>
<th>職業(yè)</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函數(shù)過濾字符串防止sql注入和跨站點(diǎn)腳本攻擊,mysql_query($sql);用來查詢語(yǔ)句,mysql_fetch_assoc()用來循環(huán)輸出結(jié)果,怎么樣是不是很簡(jiǎn)單,如果你的項(xiàng)目有需要,可以直接使用這個(gè)代碼
- jquery+ajax+text文本框?qū)崿F(xiàn)智能提示完整實(shí)例
- jQuery提示插件qTip2用法分析(支持ajax及多種樣式)
- jQuery插件select2利用ajax高效查詢大數(shù)據(jù)列表(可搜索、可分頁(yè))
- jquery實(shí)現(xiàn)ajax提交form表單的方法總結(jié)
- jquery ajax提交表單數(shù)據(jù)的兩種方式
- jquery ajax 向后臺(tái)傳遞數(shù)組參數(shù)示例
- jQuery Ajax異步處理Json數(shù)據(jù)詳解
- 用jQuery中的ajax分頁(yè)實(shí)現(xiàn)代碼
- jQuery ajax仿Google自動(dòng)提示SearchSuggess功能示例
相關(guān)文章
輕松掌握jQuery中wrap()與unwrap()函數(shù)的用法
wrap()能夠?qū)⒅付℉TML元素包裹DOM結(jié)構(gòu),與之相反unwrap()函數(shù)則是將DOM去掉^^下面讓我們來以兩個(gè)小例子輕松掌握jQuery中wrap()與unwrap()函數(shù)的用法:)2016-05-05
全面詳細(xì)的jQuery常見開發(fā)技巧手冊(cè)
這篇文章主要為大家分享了一份全面詳細(xì)的jQuery常見開發(fā)技巧手冊(cè),幫助大家更好的進(jìn)行jquery開發(fā),感興趣的小伙伴們可以參考一下2016-02-02
jQuery截取指定長(zhǎng)度字符串的實(shí)現(xiàn)原理及代碼
截取指定長(zhǎng)度字符串操作在新聞列表這種類型的操作中大量應(yīng)用,下面有個(gè)示例,大家可以參考下2014-07-07
jQuery插件實(shí)現(xiàn)文件上傳功能(支持拖拽)
這篇文章主要介紹了jQuery插件實(shí)現(xiàn)文件上傳功能,可支持拖拽文件上傳,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-06-06
JQuery實(shí)現(xiàn)簡(jiǎn)單時(shí)尚快捷的氣泡提示插件
在程序提交后,為了提高用戶體驗(yàn)我們需要驗(yàn)證并提示出錯(cuò)的位置,利用JQuery我們可以輕松實(shí)現(xiàn)氣泡提示,需要的朋友可以了解下2012-12-12
jquery中實(shí)現(xiàn)時(shí)間戳與日期相互轉(zhuǎn)換
本文主要利用jquery擴(kuò)展寫了一個(gè)myTime對(duì)象,并寫了2個(gè)函數(shù)分別處理日期和時(shí)間戳之間的相互轉(zhuǎn)換。2016-04-04
jQuery基于ID調(diào)用指定iframe頁(yè)面內(nèi)的方法
這篇文章主要介紹了jQuery基于ID調(diào)用指定iframe頁(yè)面內(nèi)的方法,涉及jQuery針對(duì)頁(yè)面框架元素的選擇與方法的調(diào)用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07
基于LayUI分頁(yè)和LayUI laypage分頁(yè)的使用示例
本篇文章主要介紹了基于LayUI分頁(yè)和LayUI laypage分頁(yè)的使用示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08

