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

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

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

1442941521_197.png

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

1442941521_300.png

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

1442941521_250.png

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

1442941521_607.png

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

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

1442941521_408.png

第一步创建一个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--程序主页面

复制代码 代码如下:

Ajax 教程:使用jquery和mysql创建一个ajax搜索

$(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());

});

});

Ajax 教程:使用jquery和mysql创建一个ajax搜索

DB Connect:dbcon.php--数据库连接文件

复制代码 代码如下:

//数据库连接函数

$link = mysql_connect('localhost', 'root', '你的密码');

mysql_select_db('ajax_demo',$link);//选择数据库连接

?>

搜索结果页面search.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);//返回结果集中行的数目

?>

echo "

搜索结果

";

echo "

姓名昵称年龄住址职业

while ($row = mysql_fetch_assoc($rsd))

{

echo "

";

echo "

" . $row['FirstName'] . "";

echo "

" . $row['LastName'] . "";

echo "

" . $row['Age'] . "";

echo "

" . $row['Hometown'] . "";

echo "

" . $row['Job'] . "";

echo "

";

}

echo "

";

if($total==0){ echo '

No Record Found !
';}?>

checkValues函数过滤字符串防止sql注入和跨站点脚本攻击,mysql_query($sql);用来查询语句,mysql_fetch_assoc()用来循环输出结果,怎么样是不是很简单,如果你的项目有需要,可以直接使用这个代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/560294.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

esxi 修改服务器配置失败,R720服务器安装 ESXI 5.5update1后出现XXX错误

R720服务器,安装ESXI5.5UPDATE1 (DELL 的版本)后,安装了几个WIN2003及CENTOS的虚拟机。启用了一台2003和一台CENTOS6.5没有安装vCenter Server从vSphere Client端连接到esxi5.5服务器,发现每次重新启动ESXI,启动事件里面有很多类似…

(哈希)两数之和(leetcode 1)

1.题目 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意…

丢失的数字

给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。 示例 1: 输入:nums [3,0,1] 输出:2 解释:n 3,因为有 3 个数字,所以所有的数字都在范围 [0,3…

ftp服务器收集文件,ftp服务器收集文件

ftp服务器收集文件 内容精选换一换为了对源端服务器进行迁移可行性评估以及为后续目的端服务器的选择和配置提供必要性数据,迁移Agent会收集源端服务器的相关信息并上报到主机迁移服务。收集的Windows操作系统的具体数据如表1所示。收集的Linux操作系统的具体数据如…

STM32-GPIO学习-跑马灯实验和按键实验-寄存器版本和HAL库版本

一、stm32跑马灯实验 a.GPIO general purpose input output 通用输入输出端口,可以做输入也可做输出,GPIO端口可通过程序配置成输入或输出。 STM32FXXXIGT6一共9组IO:PA~ PI,其中PA~ PH每组16个IO,PI只有PI0~PI11。…

STM32-时钟-时钟树-时钟初始化配置

1.STM32时钟 STM32有5个时钟源:HSI、HSE、LSI、LSE、PLL HSI是高速内部时钟,RC振荡器,频率为16MHz,精度不高。可以直接作为系统时钟或者用作PLL时钟输入。 HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接…

pe系统 服务器维护,FirPE 维护系统

前言年更项目更新啦~~~,这次修复了一些BUG,此外还增加了亿点特性。首次使用WinRE注册表,使得WinPE速度更快了。系统简介FirPE 是一款系统预安装环境(Windows PE),它具有简约、易操作等特点,使用起来十分人性化。以U盘作…

STM32-Systick滴答定时器-延时函数

1.STM32-Systick滴答定时器 Systick定时器,是一个简单的定时器,对于ST的CM3,CM4,CM7内核芯片,都有Systick定时器。 Systick定时器常用来做延时,或者实时系统的心跳时钟。这样可以节省MCU资源,不用浪费一个定时器。比如…

华为服务器更改从系统盘启动不了,华为服务器设置启动项

华为服务器设置启动项 内容精选换一换对于已安装Cloud-Init/Cloudbase-Init的云服务器,首次执行切换/故障切换操作,或者创建容灾演练后,系统第一次启动时会运行Cloud-Init/Cloudbase-Init,为云服务器重新注入初始化数据&#xff0…

STM32-NVIC中断优先级分组-中断优先级设置

STM32-中断优先级管理NVIC 1.NVIC中断优先级分组 NVIC的全称是Nested vectoredinterrupt controller,即嵌套向量中断控制器。STM32F中文参考手册中搜索向量表可以找到相应的中断说明。 CM4/CM7 内核支持256个中断,其中包含了16个内核中断和240个外部中…

hyper-v虚拟服务器内存满了,在Hyper-V Dynamic Memory里设置虚拟内存

Hyper-V R2 SP1版中加入了动态内存技术,关于内存分配的猜想也随之结束。当VMware可以自动进行虚拟内存分配的时候,Hyper-V通过动态内存让用户可以调整虚拟内存的设置。这种灵活性为主机内存分配方式提供了参考,有效提高了精确度和降低难度。通…

STM32-IO引脚复用-原理和使用

1.什么是端口复用? STM32有很多的内置外设(把一些功能ADC\看门狗…集中到芯片里面),这些外设的外部引脚都是与GPIO复用的。也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候&#xff0c…

泰拉瑞亚服务器config修改,泰拉瑞亚配置怎么修改_泰拉瑞亚配置修改方法介绍...

泰拉瑞亚配置怎么修改呢,还有很多玩家还不知道的,下面小编为玩家们带来了泰拉瑞亚配置修改方法介绍,一起来看看吧。泰拉瑞亚配置修改方法介绍Config文件(1)Wiki链接http://terraria.gamepedia.com/Config.json_settings(2)关于Configconfig文…

STM32-UART-串口通信框图-波特率计算

1.处理器与外部设备通信的两种方式: 并行通信 传输原理:数据各个位同时传输。优点:速度快缺点:占用引脚资源多 串行通信 传输原理:数据按位顺序传输。优点:占用引脚资源少缺点:速度相对较慢…

java客户端与服务器信息加密,Java AES加密 - 在客户端和服务器之间发送初始化向量...

我在客户端生成初始化向量,其中消息被加密,然后与解密向量一起发送到服务器。Java AES加密 - 在客户端和服务器之间发送初始化向量客户端代码:String key1 "1234567812345678";byte[] key2 key1.getBytes();SecretKeySpec secret…

STM32-串口发送数据-过程与配置

串口发送过程配置流程 HAL库中串口寄存器定义文件: stm32f429xx.h F429芯片 stm32f767xx.h F767芯片 stm32f103xx.h F103芯片 stm32fnnnx.x.h 其他芯片 可以在其中找到USART_TypeDef:最终会映射到寄存器的地址。 typedef struct {__IO uint32_t CR1;…

STM32 串口接收流程-串口接收中断

串口接收 串口接收流程 编程USARTx_CR1的M位来定义字长。编程USARTx_CR2的STOP位来定义停止位位数。编程USARTx_BRR寄存器确定波特率。使能USARTx_CR1的UE位使能USARTx。如果进行多缓冲通信,配置USARTx_CR3的DMA使能(DMAT)。使能USARTx_CR1的RE位为1使…

STM32-串口接收、发送数据实验-程序代码分析

串口通信实验 Printf支持 printf向串口发送一些字符串数据。如果使用串口2,可以修改while((USART1->SR&0X40)0);和USART1->DR (u8) ch; 中的USART1为USART2. //加入以下代码,支持printf函数,而不需要选择use MicroLIB #if 1 #pragma import(__use_…

STM32-外部中断配置-外部中断实验

STM32-外部中断原理与配置 IO口外部中断原理概述 STM32控制器支持的外部中断/事件请求 中断线M3M4M7EXTI线0~15:对应外部IO口的输入中断。√√√EXTI线16:连接到PVD输出。√√√EXTI线17:连接到RTC闹钟事件。√√√EXTI线18:连接到USB OTG…

STM32-独立看门狗原理-实验

独立看门狗原理概述 为什么要看门狗: 在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继…