php ajax搜索,PHP 与AJAX
PHP 实例 - AJAX 实时搜索
在使用 PHP 的时候,可以通过 AJAX 为用户提供更友好、交互性更强的搜索体验。本节给出了具体介绍!
AJAX Live Search
在下面的实例中,我们将演示一个实时的搜索,在您键入数据的同时即可得到搜索结果。
实时的搜索与传统的搜索相比,具有很多优势:
当键入数据时,就会显示出匹配的结果
当继续键入数据时,对结果进行过滤
如果结果太少,删除字符就可以获得更宽的范围
上面实例中的结果在一个 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 文件中匹配搜索字符串的标题,并返回结果:
$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相关推荐
- JAVA ajax搜索框_JS+Ajax实现百度智能搜索框
首先浏览实现后的结果,输入一个a之后会出现包含a的下拉列表,当我们点击某一个的时候,搜索框中就会出现点击的值.实现所需要的主要是ajax+js. 前端search.jsp pageEncoding=& ...
- ajax搜索思路,jquery创建一个ajax关键词数据搜索实现思路
在web开发过程当中,我们经常需要在前台页面输入关键词进行数据的搜索,我们通常使用的搜索方式是将搜索结果用另一个页面显示,这样的方式对于搭建高性能网站来说不是最合适的,今天给大家分享一下如何使用 jq ...
- Google AJAX 搜索 API
链接: 使用Google Custom Search打造站内搜索 文档:http://code.google.com/intl/zh-CN/apis/websearch/docs/ <!DOCT ...
- java ajax文字搜素,JAVA-WEB AJAX 搜索条自动提示
jsp pageEncoding="UTF-8"%> 站内搜索 .xiala{ width: 100px; background-color: #fcfcfc; border ...
- wordpress搜索ajax,wordpress ajax搜索提示
因为我的文章很多,我又会经常查看自己的旧文,所以搜索是我使用频率非常高的一个功能,而且还和微信绑定了搜索结果,所以就更重要了,这两天外出了,晚上才回来,闲着没事,给自己的主题加上了ajax搜索提示,支 ...
- 掌握AJAX, 第 9部分: 运用Google Ajax搜索API
掌握AJAX, 第 9部分: 运用Google Ajax搜索API 本系列英文链接:http://www-128.ibm.com/developerworks/views/web/libraryvie ...
- AJAX的安全性及AJAX安全隐患
Web开发者不会注意到由 "AJAX(Asynchronous JavaScript And XML)"所带来的激情.不费力气就能创建像Google Suggest那样的智能网站或 ...
- html5 ajax数据显示,html5的ajax学习(二)
一.基础知识点 1.ajax可以做事情:局部刷新 浏览器搜索列表记录 加载更多的数据 2.登录页面同步网络请求:页面全部刷新,用户量大体验很不好 3.ajax的详解:ajax的get和post请求 同 ...
- ajax背景、ajax对象、ajax状态、ajax与http、ajax请求数据接口、同步与异步、ajax请求XML数据、封装ajax函数、artTemplate简介、同源策略和跨域请求、JSONP
AJAX简介: ajax背景: 1.AJAX(Asynchronous JavaScript And Xml)异步的 JavaScript 和 XML:ajax是浏览器提供的一套API,最早出现在谷歌 ...
最新文章
- VS2010正式版MSDN下载
- 插入始终是1_40分!1分钟4次!大JB太硬了!
- JavaScript 对象的遍历以及判断方法
- 关于HttpModule
- pycharm cant open file_PyCharm
- 算术(HDU-6715)
- (47)System Verilog数组排序
- lua OOP实现对象的链式调用
- 五金工具客服快捷回复消息_公众号的自动回复,这样用就能零流失!
- 传智播客 机器学习基础 学习笔记
- 【html5和css3】animation属性整理
- 单片机破 解和防 护建议
- MAC 环境变量的加载顺序和设置环境path
- 什么是生物质发电?生物质发电有哪些方法?
- 正则表达式测试工具使用说明
- DOC文档转换成WPS格式要怎样操作
- 微信小程序请求php文件报错,微信小程序wx.request请求数据报错
- Pikachu靶场之(XSS盲打)
- ETABS结构指标查看
- 压测⼯具本地快速安装Jmeter5.x以及基础功能组件介绍线程组和Sampler
热门文章
- 如何构建一套高性能、高可用性、低成本的视频处理系统?
- 【Workshshop No.3 | Kyligence X 青云QingCloud Workshop】零基础搭建云上大数据平台
- LiveVideoStackCon讲师热身分享第一季
- nginx+upsync+consul 构建动态nginx配置系统
- 2017大数据全景图
- 无锁链表的c++实现
- /etc/sysconfig/network-script/ifcfg-eth0究竟怎么填!!!
- Mysql的几个字符串函数【concat、concat_ws、group_concat】
- Redis布隆过滤器
- leetcode 474. Ones and Zeroes | 474. 一和零(双约束背包问题)