php ajax 搜索实例,PHP 实例 AJAX 实时搜索
PHP 实例 - AJAX 实时搜索
在使用 PHP 的时候,可以通过 AJAX 为用户提供更友好、交互性更强的搜索体验。本节给出了具体介绍!
AJAX Live Search
在下面的实例中,我们将演示一个实时的搜索,在您键入数据的同时即可得到搜索结果。
实时的搜索与传统的搜索相比,具有很多优势: 当键入数据时,就会显示出匹配的结果
当继续键入数据时,对结果进行过滤
如果结果太少,删除字符就可以获得更宽的范围
在下面的文本框中搜索 W3CSchool 的页面
上面实例中的结果在一个 XML 文件(links.xml)中进行查找。为了让这个例子小而简单,我们只提供 6 个结果。
实例解释 - HTML 页面
当用户在上面的输入框中键入字符时,会执行 "showResult()" 函数。该函数由 "onkeyup" 事件触发:
function showResult(str)
{
if (str.length==0)
{
document.getElementById("livesearch").innerHTML="";
document.getElementById("livesearch").style.border="0px";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("livesearch").innerHTML=xmlhttp.responseText;
document.getElementById("livesearch").style.border="1px solid #A5ACB2";
}
}
xmlhttp.open("GET","livesearch.php?q="+str,true);
xmlhttp.send();
}
源代码解释:
如果输入框是空的(str.length==0),该函数会清空 livesearch 占位符的内容,并退出该函数。
如果输入框不是空的,那么 showResult() 会执行以下步骤: 创建 XMLHttpRequest 对象
创建在服务器响应就绪时执行的函数
向服务器上的文件发送请求
请注意添加到 URL 末端的参数(q)(包含输入框的内容)
PHP 文件
上面这段通过 JavaScript 调用的服务器页面是名为 "livesearch.php" 的 PHP 文件。
"livesearch.php" 中的源代码会搜索 XML 文件中匹配搜索字符串的标题,并返回结果:<?php
$xmlDoc=new DOMDocument();
$xmlDoc->load("links.xml");
$x=$xmlDoc->getElementsByTagName('link');
//get the q parameter from URL
$q=$_GET["q"];
//lookup all links from the xml file if length of q>0
if (strlen($q)>0)
{
$hint="";
for($i=0; $ilength); $i++)
{
$y=$x->item($i)->getElementsByTagName('title');
$z=$x->item($i)->getElementsByTagName('url');
if ($y->item(0)->nodeType==1)
{
//find a link matching the search text
if (stristr($y->item(0)->childNodes->item(0)->nodeValue,$q))
{
if ($hint=="")
{
$hint="" .
$y->item(0)->childNodes->item(0)->nodeValue . "";
}
else
{
$hint=$hint . "" .
$y->item(0)->childNodes->item(0)->nodeValue . "";
}
}
}
}
}
// Set output to "no suggestion" if no hint were found
// or to the correct values
if ($hint=="")
{
$response="no suggestion";
}
else
{
$response=$hint;
}
//output the response
echo $response;
?>
如果 JavaScript 发送了任何文本(即 strlen($q) > 0),则会发生: 加载 XML 文件到新的 XML DOM 对象
遍历所有的
元素,以便找到匹配 JavaScript 所传文本
在 "$response" 变量中设置正确的 URL 和标题。如果找到多于一个匹配,所有的匹配都会添加到变量。
如果没有找到匹配,则把 $response 变量设置为 "no suggestion"。
php ajax 搜索实例,PHP 实例 AJAX 实时搜索相关推荐
- ElasticSearch近实时搜索的实现
ElasticSearch近实时搜索的实现 1.近实时搜索 1.1 实时与近实时 实时搜索(Real-time Search)很好理解,对于一个数据库系统,执行插入以后立刻就能搜索到刚刚插入到数据.而 ...
- js中的json ajax,js结合json实现ajax简单实例
这篇文章主要为大家详细介绍了js结合json实现ajax简单实例的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 前期准备 1.安装wampserver或者其他相似软件来搭建本地集成安装环 ...
- ajax资料收集-Ajax文章(教程和实例)---Ajax资源下载(源码和教程)---Ajax规范标准
CSDN Blog Ajax文章搜索: http://search.csdn.net/search/ajax/1/blog/ 专题:Ajax技术应用开发 http://www.51cto.com/ht ...
- ajax php计数,jQuery+PHP+Ajax动态数字统计展示实例
jQuery+PHP+Ajax实现的一款动态数字统计展示实例,本例是在页面上动态展示了当前在线用户数,当然了,你可以应用到其他更多场景中. 首先我们在#number放置要统计的数字: 当前在线: - ...
- php 请求拦截,解决拦截器对ajax请求的拦截实例详解
解决拦截器对ajax请求的的拦截 拦截器配置:public boolean preHandle(HttpServletRequest request, HttpServletResponse resp ...
- ajax 示例代码,Ajax的简单实用实例代码
我将实现一个简单的Ajax页面无刷新进行用户验证案例: 效果如下图: 实现主要过程: 在UsersAction类中的checkUser方法中接收并验证前台的表单数据,针对不同情况,返回一个状态码cod ...
- AJAX ASP/PHP 请求实例
AJAX ASP/PHP 请求实例 · Previous Page · Next Page AJAX ...
- 二级联动菜单ajax刷新,jquery json ajax 二级联动菜单实例
本文实例讲述了jquery json ajax 二级联动菜单.分享给码农们参考,具体如下: 后台Handler.ashx using System; using System.Web; using S ...
- ajax php 投票,PHP 实例 AJAX 投票
PHP 实例 - AJAX 投票 AJAX 投票 在下面的实例中,我们将演示一个投票程序,通过它,投票结果在网页不进行刷新的情况下被显示. 你喜欢 PHP 和 AJAX 吗? 是: 否: 实例解释 - ...
最新文章
- html5 微格式,HTML5抢鲜:微格式及相关的属性名称。
- 干掉 FastJson
- JavaScript中的常量:什么时候使用它,有必要吗?
- 成功解决pywintypes.com_error: (-2147352567, '发生意外。', (0, 'Kingsoft WPS', '文档保存失败。', '', 3011, -214746725
- SOCKET通信的基本步骤
- java时间规划书_【计算机本科补全计划】Java学习笔记(九) Java日期时间
- IOS自动化打包平台
- Linux工作笔记-查看某程序安装路径及可执行文件相关链接库
- 文档浏览网站 Docs4dev,内含Spring、SpringBoot、Spring Data等中英文文档
- jdk5.0的新特性
- 指针运算符 * 说明
- python select
- 《Django实战系列》
- UINavigationController 基本用法
- SQLite的SQL语法
- php超小免杀大马_php大马免杀技巧 | bypass waf
- Matlab中的两种曲线平滑函数
- arduino SIM868发送post请求到服务器,解决只能成功发送一次的问题
- ftp服务器修改默认端口,FTP原理和修改FTP默认端口
- 搭建zabbix监控及邮件报警
热门文章
- 抛物型方程向前差分matlab,(整理)微分方程数值解(学生复习题).
- Struts2框架学习之一:Hello World程序
- win7计算机用户配置文件存储路径,Win7用户配置文件夹位置怎么修改?
- Intel 加速分布式计算系统的三个神器
- 【05】CC - 格式
- 异常:The supplied data appears to be in the Office 2007+ XML
- LeetCode简单题目(#160 #167 #168 #169 #171)-5道(序列、数字)
- mysql清理死链接_对MySQL的死连接Sleep的进程的来源研究
- mysql数据没有同步更新_MySQL数据库主从没有同步的两种解决方案
- 嘉兴 机器人仓库 菜鸟_“199”机器人火了,天猫双11,有1亿人次“云监工”物流发货...