PHP实例代码模仿百度搜索时输入内容带提示.docx
- 文档编号:17474914
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:9
- 大小:17.33KB
PHP实例代码模仿百度搜索时输入内容带提示.docx
《PHP实例代码模仿百度搜索时输入内容带提示.docx》由会员分享,可在线阅读,更多相关《PHP实例代码模仿百度搜索时输入内容带提示.docx(9页珍藏版)》请在冰点文库上搜索。
PHP实例代码模仿XX搜索时输入内容带提示
PHP实例代码:
模仿XX搜索时输入内容带提示
自己用PHP+js模仿的XX搜索时输入内容带提示的功能,运行的话需要PHP环境。
也算是自己的一个练笔题吧,和大家分享一下
php
$aName=array("王成","王瑞","王祥","何武昌","何睿","何好","马兴","马成栋","张相","张祥");
$aId=array(88801,11144,2345,9023,12415,88021,11145,2344,11145,0376);
foreach($aNameas$k=>$val)
{
$json[$k]=array(
'id'=>$aId[$k],
'name'=>$val
);
}
/**************************************************************
*
* 使用特定function对数组中所有元素做处理
* @param string &$array 要处理的字符串
* @param string $function 要执行的函数
* @returnboolean$apply_to_keys_also 是否也应用到key上
* @accesspublic
*
*************************************************************/
functionarrayRecursive(&$array,$function,$apply_to_keys_also=false)
{
static$recursive_counter=0;
if(++$recursive_counter>1000){
die('possibledeeprecursionattack');
}
foreach($arrayas$key=>$value){
if(is_array($value)){
arrayRecursive($array[$key],$function,$apply_to_keys_also);
}else{
$array[$key]=$function($value);
}
if($apply_to_keys_also&&is_string($key)){
$new_key=$function($key);
if($new_key!
=$key){
$array[$new_key]=$array[$key];
unset($array[$key]);
}
}
}
$recursive_counter--;
}
/**************************************************************
*
* 将数组转换为JSON字符串(兼容中文)
* @param array $array 要转换的数组
* @returnstring 转换得到的json字符串
* @accesspublic
*
*************************************************************/
functionJSON($array){
arrayRecursive($array,'urlencode',true);
$json=$array);
returnurldecode($json);
}
?
>
DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http:
//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
//www.w3.org/1999/xhtml">
.name{cursor:
pointer;}
.selected{background:
#CCC;}
.normal{background:
#FFF;}
"id="neirong"onkeyup="tip(event,0)"/>
1px#666solid;">
window.onload=function(){
vartag=document.getElementById("showMessage");
tag.style.display="none";
}
functiontip(event){
varaUserName=newArray();
varaTempName,aUserName,tag,sVal,sHtml,mesTag,selectedTag,didTag,widths;
varpostion=newArray();
varsId=0;//用于给每个名字加一个id的顺序
varwhichType;//用户输入的类型,是数字呢还是中文。
aUserName=
phpechoJSON($json);?
>;
//aUserName=eval('('+aTempName+')');
tag=document.getElementById("neirong");
didTag=document.getElementById("did");
//输入框坐标获取
postion=getElementPos(tag);
//显示div坐标调整
mesTag=document.getElementById("showMessage");
mesTag.style.position="absolute";
mesTag.style.left=postion[0]
mesTag.style.top=postion[1];
widths=tag.style.width+"px";
mesTag.width=widths;
varevent=event||window.event;
varsKeyCode=event.keyCode;
varaShangXia=newArray(37,38,39,40);
varisDerection;
sVal=tag.value;
//以enter作为用户输入结束标志
if(13!
=sKeyCode){
for(variinaShangXia){
if(sKeyCode==aShangXia){
isDerection=false;
break;
}
else{
isDerection=true;
}
}
if(isDerection){
sHtml='';
if(""==sVal){
mesTag.style.display="none";
mesTag.innerHTML=sHtml;
returnfalse;
}
else{
sHtml='
if(checkVal(sVal)){
for(variinaUserName)
{
if(0<=aUserName[i].id.indexOf(sVal)){
sHtml=sHtml+'
sId=sId+1;
}
}
}
else{
for(variinaUserName)
{
if(0<=aUserName[i].name.indexOf(sVal)){
sHtml=sHtml+'
sId=sId+1;
}
}
}
sHtml=sHtml+'';
if(0!
=sId){
mesTag.style.display="";
mesTag.innerHTML=sHtml;
sHtml='';
}
else{
mesTag.innerHTML='没有结果';
}
}
}
else
{
if(38==sKeyCode||40==sKeyCode){
dance(sKeyCode,sVal,tag);
}
}
}
else{
if(''!
=tag.value){
mesTag.innerHTML='';
showMessage.style.display='none';
}
else{
returnfalse;
}
}
}
functioncheckVal(sVal){
varpatrn=/^[0-9]/;
if(patrn.exec(sVal)){
returntrue;
}
else{
returnfalse;
}
}
//获取用户通过点击的名字
functionclickToChoice(sqnm){
varchoicedTag,mesTag,showTag;
choicedTag=document.getElementById("p_"+sqnm);
mesTag=document.getElementById("neirong");
showTag=document.getElementById("showTable");
mesTag.value=choicedTag.innerHTML;
showMessage.style.display='none';
}
functiondance(sKeyCode,sVal,tag){
vardanceTag=getElementsByClassName("normal");//这个是正常的行
vardanceingTag=getElementsByClassName("selected");//这个是前一个被选中的行
varselectedTag,lastTag,showTag,selectedVal,currentNum,initial;
varrowNums,selectedNum=0;
vardanceLen=danceTag.length;
if(0!
=danceingTag.length){
showTag=document.getElementById("showTable");
rowNums=showTag.rows.length;
currentNum=danceingTag[0].id.split("_")[1]*1;
switch(sKeyCode){
case40:
if(rowNums==(currentNum+1)){
selectedNum=0;
}
else{
selectedNum=currentNum+1;
}
break;
case38:
if(0==currentNum){
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PHP 实例 代码 模仿 百度 搜索 输入 内容 提示
![提示](https://static.bingdoc.com/images/bang_tan.gif)