ajax仿google搜索下拉提示

 更新时间:2016年11月25日 16:05  点击:1234

<script type="text/javascriptsrc="prototype.js"></script>
<script type="text/javascript">
//定义变量lastindex 表示为鼠标在查询结果上滑动所在位置,初始为-1
var lastindex=-1;
//定义变量flag 表示是否根据用户输入的关键字进行ajax查询,flase为允许查询 true为禁止查询
var flag=false;
//返回的查询结果生成的数组长度
var listlength=0;
function StringBuffer(){//定义对象StringBuffer
       this.data=[];//创建属性,自定字符串
      } 
StringBuffer.prototype.append=function(){//声明StringBuffer的方法
           this.data.push(arguments[0]);return this;//方法实现代码,赋值
          } 
StringBuffer.prototype.tostring=function(){//返回结果,或是说输出结果
           return this.data.join("");
           } 
String.prototype.Trim = function(){//滤过空格
         return this.replace(/(^\s*)|(\s*$)/g, "");
         }
function hiddensearch(){//隐藏函数 主要是隐藏显示的提示下拉层和iframe,关于iframe下面在说其作用
       $('rlist').style.display="none";
       $('rFrame').style.display="none";
      }
function showsearch(num){//显示函数 主要是显示的提示下拉层和iframe 参数num,根据该参数控制要显示提示层和iframe的高度
        $('rlist').style.display='';
        $('rFrame').style.display='';
       //这里我定义每个返回查询结果的提示高度为20px,其中提示层总高度又加了num,是因为我在定义样式时使用了padding一个像素
        $('rlist').style.height=num*20+num+'px';
         //同样定位iframe的高度
        $('rFrame').style.height=num*20+num+'px';
      }
function getposition(element,offset){
      //返回文本输入框的坐标函数,参数element为要返回的对象,参数offset可选为offsetLeft|offsetTop 分别表示为该对象距离左窗口上角的绝对位置
      //利用这个函数可以定位我们要显示的提示层位置,使提示层正确的显示在文本输入框下面
          var c=0;
          while(element){
               c+=element[offset];
               element=element.offsetParent
             }
          return c;
         }
/********************************DOM*************************************************/
function createlist(){//创建提示层
      var listDiv=document.createElement("div");//createElement()方法可创建元素节点
      listDiv.id="rlist"; //提示层id       
      listDiv.style.zIndex="2";//z-index 属性设置元素的堆叠顺序。拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面,这个设置的是后便
      listDiv.style.position="absolute"; //position 属性把元素放置到一个静态的、相对的、绝对的、或固定的位置中。这个和下边的那个是对应的,也就是说和下边的框架是对应的,位置设置为 absolute 的元素,可定位于相对于包含它的元素的指定坐标。此元素的位置可通过 "left"、"top"、"right" 以及 "bottom" 属性来规定。下边的出现也是因为选择了这个absolute数值
      listDiv.style.border="solid 1px #000000";//设置边框样式
      listDiv.style.backgroundColor="#FFFFFF";//设置背景颜色
      listDiv.style.display="none"; //此元素不会被显示
      listDiv.style.width=$('keyword').clientWidth+"px";//只读属性,声明了窗口的文档显示区的宽度
      listDiv.style.left=getposition($('keyword'),'offsetLeft')+1.5+"px";//设置定位元素左外边距
      listDiv.style.top =(getposition($('keyword'),'offsetTop')+$('keyword').clientHeight +3)+"px";//设置一个定位元素的上外边距边界与其包含块上边界之间的偏移。提示:如果 "position" 属性的值为 "static",那么设置 "top" 属性不会产生任何效果。
      var listFrame=document.createElement("iframe");
      listFrame.id="rFrame";//提示层id
      listFrame.style.zIndex="1";//z-index 属性设置元素的堆叠顺序。拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面,这个设置的是前边
      listFrame.style.position="absolute";//和上边的那个设置是对应的
      listFrame.style.border="0";//设置边框为0
      listFrame.style.display="none"; //此元素不会被显示
      listFrame.style.width=$('keyword').clientWidth+"px";//只读属性,声明了窗口的文档显示区的宽度
      listFrame.style.left=getposition($('keyword'),'offsetLeft')+1+"px";//设置定位元素左外边距
      listFrame.style.top =(getposition($('keyword'),'offsetTop')+$('keyword').clientHeight +3)+"px";//设置一个定位元素的上外边距边界与其包含块上边界之间的偏移。提示:如果 "position" 属性的值为 "static",那么设置 "top" 属性不会产生任何效果。
      document.body.appendChild(listDiv); //向节点的子节点列表的末尾添加新的子节点。开头结尾相呼应。
      document.body.appendChild(listFrame);//向节点的子节点列表的末尾添加新的子节点。开头结尾相呼应 。
     }
function setstyle(element,classname){
  switch (classname){
        case 'm':
          element.style.fontSize="12px";//设置字体大小
          element.style.fontFamily="arial,sans-serif";//fontFamily 属性定义用于元素文本显示的字体。
          element.style.backgroundColor="#3366cc";//背景
          element.style.color="black";//颜色
          element.style.width=$('keyword').clientWidth-2+"px";//设置只读属性的宽
          element.style.height="20px";//设置高度
          element.style.padding="1px 0px 0px 2px";//padding 属性设置元素的内边距。
          if(element.displaySpan)element.displaySpan.style.color="white"
          break;
        case 'd':
          element.style.fontSize="12px";
          element.style.fontFamily="arial,sans-serif";
          element.style.backgroundColor="white";
          element.style.color="black";
          element.style.width=$('keyword').clientWidth-2+"px";
          element.style.height="20px";
          element.style.padding="1px 0px 0px 2px";
          if(element.displaySpan)element.displaySpan.style.color="green"
          break;
        case 't':
          element.style.width="80%";
          if(window.navigator.userAgent.toLowerCase().indexOf("firefox")!=-1)element.style.cssFloat="left";//判断头的
          else element.style.styleFloat="left";
          element.style.whiteSpace="nowrap";
          element.style.overflow="hidden";
          element.style.textOverflow="ellipsis";
          element.style.fontSize="12px";
          element.style.textAlign="left";
          break;
        case 'h':
          element.style.width="20%";
          if(window.navigator.userAgent.toLowerCase().indexOf("firefox")!=-1)element.style.cssFloat="right";
          else element.style.styleFloat="right";
          element.style.textAlign="right";
          element.style.color="green";
          break;
       }
     }
function focusitem(index){
       if($('item'+lastindex)!=null)setstyle($('item'+lastindex),'d');
       if($('item'+index)!=null){
                setstyle($('item'+index), 'm');
                lastindex=index;
              }
       else {
         $("keyword").focus();
        }
      }
function searchclick(index){
         $("keyword").value=$('title'+index).innerHTML;
         flag=true;
       }
function searchkeydown(e){
       if($('rlist').innerHTML=='')return;
        var keycode=(window.navigator.appName=="Microsoft Internet Explorer")?event.keyCode:e.which;
  //down
  if(keycode==40)
  {
if(lastindex==-1||lastindex==listlength-1)
{
  focusitem(0);
  searchclick(0);
}
else{
  focusitem(lastindex+1);
  searchclick(lastindex+1);
}
  }
if(keycode==38)
{
if(lastindex==-1)
{
  focusitem(0);
  searchclick(0);
}
else{
  focusitem(lastindex-1);
  searchclick(lastindex-1);
}
}
if(keycode==13)
{
  focusitem(lastindex);
  $("keyword").value=$('title'+lastindex).innerText;
}    
if(keycode==46||keycode==8){flag=false;ajaxsearch($F('keyword').substring(0,$F('keyword').length-1).Trim());}
}
function showresult(xmlhttp)
{
var result=unescape(xmlhttp.responseText);
if(result!=''){
    var resultstring=new StringBuffer();
       var title=result.split('$')[0];
       var hits=result.split('$')[1];
    for(var i=0;i<title.split('|').length;i++)
    {
    resultstring.append('<div id="item'+i+'">');
    resultstring.append('<span id=title'+i+'>');
    resultstring.append(title.split('|')[i]);
    resultstring.append('</span>');
    resultstring.append('<span id=hits'+i+'>');
    resultstring.append(hits.split('|')[i]);
    resultstring.append('</span>');
    resultstring.append('</div>');
    }
    $('rlist').innerHTML=resultstring.tostring();
    for(var j=0;j<title.split('|').length;j++)
    {
     setstyle($('item'+j),'d');
  $('item'+j).displaySpan=$('hits'+j);
     setstyle($('title'+j),'t');
     setstyle($('hits'+j),'h');
    }
    showsearch(title.split('|').length);
    listlength=title.split('|').length;
    lastindex=-1;
}
else hiddensearch();
}
function ajaxsearch(value)
{
new Ajax.Request('search.php',{method:"get",parameters:"action=do&keyword="+escape(value),onComplete:showresult});
}
function main()
{
$('keyword').className=$('keyword').className=='inputblue'?'inputfocus':'inputblue';
if($F('keyword').Trim()=='')hiddensearch();
else
{
      if($F('keyword')!=''&&flag==false)ajaxsearch($F('keyword').Trim());
   if(listlength!=0)$('keyword').onkeydown=searchkeydown;
   else hiddensearch();
}
}
function oninit()
{
$('keyword').autocomplete="off";
$('keyword').onfocus=main;
$('keyword').onkeyup=main;
$('keyword').onblur=hiddensearch; 
createlist();
}
Event.observe(window,'load',oninit);
</script>

Ajax+PHP分页演示,带源码下载!!
今天看默默讲解分页,想想好像原创区很久没人发帖了,就顺便把默默的那个扩展开来,来个PHP+AJAX分页演示吧,好的,说来就来,首先我们依然是基本的AJAX开发框架:
复制内容到剪贴板
代码:
var http_request=false;
  function send_request(url){//初始化,指定处理函数,发送请求的函数
    http_request=false;
    //开始初始化XMLHttpRequest对象
    if(window.XMLHttpRequest){//Mozilla浏览器
     http_request=new XMLHttpRequest();
     if(http_request.overrideMimeType){//设置MIME类别
       http_request.overrideMimeType("text/xml");
     }
    }
    else if(window.ActiveXObject){//IE浏览器
     try{
      http_request=new ActiveXObject("Msxml2.XMLHttp");
     }catch(e){
      try{
      http_request=new ActiveXobject("Microsoft.XMLHttp");
      }catch(e){}
     }
    }
    if(!http_request){//异常,创建对象实例失败
     window.alert("创建XMLHttp对象失败!");
     return false;
    }
    http_request.onreadystatechange=processrequest;
    //确定发送请求方式,URL,及是否同步执行下段代码
    http_request.open("GET",url,true);
    http_request.send(null);
  }
  //处理返回信息的函数
  function processrequest(){
   if(http_request.readyState==4){//判断对象状态
     if(http_request.status==200){//信息已成功返回,开始处理信息
      document.getElementById(reobj).innerHTML=http_request.responseText;
     }
     else{//页面不正常
      alert("您所请求的页面不正常!");
     }
   }
  }
  function dopage(obj,url){
   document.getElementById(obj).innerHTML="正在读取数据...";
   send_request(url);
   reobj=obj;
   }
内容我放在一个div中显示,当翻页动作产生时,利用AJAX更新DIV达到翻页效果这是内容显示页面代码:
复制内容到剪贴板
代码:
<?php
header("Content-type: text/html;charset=GBK");//输出编码,避免中文乱码
?>
<html>
<head>
<title>ajax分页演示</title>
<script language="javascript" src="ajaxpg.js"></script>
</head>
<body>
<div id="result">
<?php
$page=isset($_GET['page'])?intval($_GET['page']):1;        //这句就是获取page=18中的page的值,假如不存在page,那么页数就是1。
$num=10;                                      //每页显示10条数据

$db=mysql_connect("localhost","root","7529639");           //创建数据库连接
mysql_select_db("cr_download");                 //选择要操作的数据库

/*
首先咱们要获取数据库中到底有多少数据,才能判断具体要分多少页,具体的公式就是
总数据库除以每页显示的条数,有余进一。
也就是说10/3=3.3333=4 有余数就要进一。
*/

$result=mysql_query("select * from cr_userinfo");
$total=mysql_num_rows($result); //查询所有的数据

$url='test.php';//获取本页URL

//页码计算
$pagenum=ceil($total/$num);                                    //获得总页数,也是最后一页
$page=min($pagenum,$page);//获得首页
$prepg=$page-1;//上一页
$nextpg=($page==$pagenum ? 0 : $page+1);//下一页
$offset=($page-1)*$num;                                        //获取limit的第一个参数的值,假如第一页则为(1-1)*10=0,第二页为(2-1)*10=10。

//开始分页导航条代码:
$pagenav="显示第 <B>".($total?($offset+1):0)."</B>-<B>".min($offset+10,$total)."</B> 条记录,共 $total 条记录 ";

//如果只有一页则跳出函数:
if($pagenum<=1) return false;

$pagenav.=" <a href=javascript:dopage('result','$url?page=1');>首页</a> ";
if($prepg) $pagenav.=" <a href=javascript:dopage('result','$url?page=$prepg');>前页</a> "; else $pagenav.=" 前页 ";
if($nextpg) $pagenav.=" <a href=javascript:dopage('result','$url?page=$nextpg');>后页</a> "; else $pagenav.=" 后页 ";
$pagenav.=" <a href=javascript:dopage('result','$url?page=$pagenum');>尾页</a> ";
$pagenav.="</select> 页,共 $pagenum 页";

//假如传入的页数参数大于总页数,则显示错误信息
If($page>$pagenum){
       Echo "Error : Can Not Found The page ".$page;
       Exit;
}

$info=mysql_query("select * from cr_userinfo limit $offset,$num");   //获取相应页数所需要显示的数据
While($it=mysql_fetch_array($info)){
       Echo $it['username'];
       echo "<br>";
}                                                              //显示数据
  echo"<br>";
  echo $pagenav;//输出分页导航

?>
</div>
</body>
</html>
翻页的关键就在于翻页时调用dopage()函数,接着利用回调信息来更新div中的内容。服务器端核心代码:
复制内容到剪贴板
代码:
<?php
header("Content-type: text/html;charset=GBK");//输出编码,避免中文乱码
$page=isset($_GET['page'])?intval($_GET['page']):1;        //这句就是获取page=18中的page的值,假如不存在page,那么页数就是1。
$num=10;                                      //每页显示10条数据

$db=mysql_connect("localhost","root","7529639");           //创建数据库连接
mysql_select_db("cr_download");                 //选择要操作的数据库

/*
首先咱们要获取数据库中到底有多少数据,才能判断具体要分多少页,具体的公式就是
总数据库除以每页显示的条数,有余进一。
也就是说10/3=3.3333=4 有余数就要进一。
*/

$result=mysql_query("select * from cr_userinfo");
$total=mysql_num_rows($result); //查询所有的数据

$url='test.php';//获取本页URL

//页码计算
$pagenum=ceil($total/$num);                                    //获得总页数,也是最后一页
$page=min($pagenum,$page);//获得首页
$prepg=$page-1;//上一页
$nextpg=($page==$pagenum ? 0 : $page+1);//下一页
$offset=($page-1)*$num;                                        //获取limit的第一个参数的值,假如第一页则为(1-1)*10=0,第二页为(2-1)*10=10。

//开始分页导航条代码:
$pagenav="显示第 <B>".($total?($offset+1):0)."</B>-<B>".min($offset+10,$total)."</B> 条记录,共 $total 条记录 ";

//如果只有一页则跳出函数:
if($pagenum<=1) return false;

$pagenav.=" <a href=javascript:dopage('result','$url?page=1');>首页</a> ";
if($prepg) $pagenav.=" <a href=javascript:dopage('result','$url?page=$prepg');>前页</a> "; else $pagenav.=" 前页 ";
if($nextpg) $pagenav.=" <a href=javascript:dopage('result','$url?page=$nextpg');>后页</a> "; else $pagenav.=" 后页 ";
$pagenav.=" <a href=javascript:dopage('result','$url?page=$pagenum');>尾页</a> ";
$pagenav.="</select> 页,共 $pagenum 页";

//假如传入的页数参数大于总页数,则显示错误信息
If($page>$pagenum){
       Echo "Error : Can Not Found The page ".$page;
       Exit;
}

$info=mysql_query("select * from cr_userinfo limit $offset,$num");   //获取相应页数所需要显示的数据
While($it=mysql_fetch_array($info)){
       Echo $it['username'];
       echo "<br>";
}                                                              //显示数据
  echo"<br>";
  echo $pagenav;//输出分页导航
 
?>


function dftp_connect($ftphost, $ftpuser, $ftppass, $ftppath, $ftpport = 21, $ftpssl = 0, $silent = 0) {
 global $ftp;
 @set_time_limit(0);
 $ftphost = wipespecial($ftphost);
 $ftpport = intval($ftpport);
 $ftpssl = intval($ftpssl);
 $ftp['timeout'] = intval($ftp['timeout']);
 $func = $ftpssl && function_exists('ftp_ssl_connect') ? 'ftp_ssl_connect' : 'ftp_connect';
 if($func == 'ftp_connect' && !function_exists('ftp_connect')) {
  if($silent) {
   return -4;
  } else {
   errorlog('FTP', "FTP not supported.", 0);
  }
 }
 if($ftp_conn_id = @$func($ftphost, $ftpport, 20)) {
  if($ftp['timeout'] && function_exists('ftp_set_option')) {
   @ftp_set_option($ftp_conn_id, FTP_TIMEOUT_SEC, $ftp['timeout']);
  }
  if(dftp_login($ftp_conn_id, $ftpuser, $ftppass)) {
   if($ftp['pasv']) {
    dftp_pasv($ftp_conn_id, TRUE);
   }
   if(dftp_chdir($ftp_conn_id, $ftppath)) {
    return $ftp_conn_id;
   } else {
    if($silent) {
     return -3;
    } else {
     errorlog('FTP', "Chdir '$ftppath' error.", 0);
    }
   }
  } else {
   if($silent) {
    return -2;
   } else {
    errorlog('FTP', '530 Not logged in.', 0);
   }
  }
 } else {
  if($silent) {
   return -1;
  } else {
   errorlog('FTP', "Couldn't connect to $ftphost:$ftpport.", 0);
  }
 }
 dftp_close($ftp_conn_id);
 return -1;
}
function dftp_mkdir($ftp_stream, $directory) {
 $directory = wipespecial($directory);
 return @ftp_mkdir($ftp_stream, $directory);
}
function dftp_rmdir($ftp_stream, $directory) {
 $directory = wipespecial($directory);
 return @ftp_rmdir($ftp_stream, $directory);
}
function dftp_put($ftp_stream, $remote_file, $local_file, $mode, $startpos = 0 ) {
 $remote_file = wipespecial($remote_file);
 $local_file = wipespecial($local_file);
 $mode = intval($mode);
 $startpos = intval($startpos);
 return @ftp_put($ftp_stream, $remote_file, $local_file, $mode, $startpos);
}
function dftp_size($ftp_stream, $remote_file) {
 $remote_file = wipespecial($remote_file);
 return @ftp_size($ftp_stream, $remote_file);
}
function dftp_close($ftp_stream) {
 return @ftp_close($ftp_stream);
}
function dftp_delete($ftp_stream, $path) {
 $path = wipespecial($path);
 return @ftp_delete($ftp_stream, $path);
}
function dftp_get($ftp_stream, $local_file, $remote_file, $mode, $resumepos = 0) {
 $remote_file = wipespecial($remote_file);
 $local_file = wipespecial($local_file);
 $mode = intval($mode);
 $resumepos = intval($resumepos);
 return @ftp_get($ftp_stream, $local_file, $remote_file, $mode, $resumepos);
}
function dftp_login($ftp_stream, $username, $password) {
 $username = wipespecial($username);
 $password = str_replace(array("n", "r"), array('', ''), $password);
 return @ftp_login($ftp_stream, $username, $password);
}
function dftp_pasv($ftp_stream, $pasv) {
 $pasv = intval($pasv);
 return @ftp_pasv($ftp_stream, $pasv);
}
function dftp_chdir($ftp_stream, $directory) {
 $directory = wipespecial($directory);
 return @ftp_chdir($ftp_stream, $directory);
}
function dftp_site($ftp_stream, $cmd) {
 $cmd = wipespecial($cmd);
 return @ftp_site($ftp_stream, $cmd);
}
function dftp_chmod($ftp_stream, $mode, $filename) {
 $mode = intval($mode);
 $filename = wipespecial($filename);
 if(function_exists('ftp_chmod')) {
  return @ftp_chmod($ftp_stream, $mode, $filename);
 } else {
  return dftp_site($ftp_stream, 'CHMOD '.$mode.' '.$filename);
 }
}

<!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>php日历代码</title>
<style type="text/css">
<!--
#calendarTitle{
        width:210px;
}
#calendarMain{
        width:210px;
}
.clear{
        clear:both;
}
.titleSpan{
        width:30px;
        text-align:center;
        float:left;
}
.daySpan{
        width:30px;
        text-align:center;
        float:left;
}
-->
</style>
</head>

<body>
<div id="calendarTitle">
<div class="titleSpan">日</div>
<div class="titleSpan">一</div>
<div class="titleSpan">二</div>
<div class="titleSpan">三</div>
<div class="titleSpan">四</div>
<div class="titleSpan">五</div>
<div class="titleSpan">六</div>
<div class="clear"></div>
</div>

<div id="calendarMain">

<?
@date_default_timezone_set('+8');

function week2day($str) {
$days = array('Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun');
return array_search($str, $days) + 1;
}


$selectTimestamp = time();
$curMonth = date('n', $selectTimestamp);
$curYear = date('Y', $selectTimestamp);
$curDay = week2day(date('D', $selectTimestamp));
$todayNum = date('j', $selectTimestamp);
$curMonthTotal = date('t', $selectTimestamp);
$firstDay = week2day(date('D', mktime(0,0,0,$curMonth,1,$curYear)));
$lastDay = week2day(date('D', mktime(0,0,0,$curMonth,$curMonthTotal,$curYear)));

for($i=0;$i<$firstDay;$i++){
echo('<div class="daySpan"> </div>');
}

for($i=1;$i<=$curMonthTotal;$i++){
if($i == $todayNum){
echo('<div class="daySpan">X</div>');
}else{
echo('<div class="daySpan">'.$i.'</div>');
}

}
   
?>
</div>

<div class="clear"></div>
</body>
</html>

<?php
header("Content-type: text/html;charset=GBK");//输出编码,避免中文乱码
$page=isset($_GET['page'])?intval($_GET['page']):1;        //这句就是获取page=18中的page的值,假如不存在page,那么页数就是1。
$num=10;                                      //每页显示10条数据

$db=mysql_connect("localhost","root","7529639");           //创建数据库连接
mysql_select_db("cr_download");                 //选择要操作的数据库

/*
首先咱们要获取数据库中到底有多少数据,才能判断具体要分多少页,具体的公式就是
总数据库除以每页显示的条数,有余进一。
也就是说10/3=3.3333=4 有余数就要进一。
*/

$result=mysql_query("select * from cr_userinfo");
$total=mysql_num_rows($result); //查询所有的数据

$url='test.php';//获取本页URL

//页码计算
$pagenum=ceil($total/$num);                                    //获得总页数,也是最后一页
$page=min($pagenum,$page);//获得首页
$prepg=$page-1;//上一页
$nextpg=($page==$pagenum ? 0 : $page+1);//下一页
$offset=($page-1)*$num;                                        //获取limit的第一个参数的值,假如第一页则为(1-1)*10=0,第二页为(2-1)*10=10。

//开始分页导航条代码:
$pagenav="显示第 <B>".($total?($offset+1):0)."</B>-<B>".min($offset+10,$total)."</B> 条记录,共 $total 条记录 ";

//如果只有一页则跳出函数:
if($pagenum<=1) return false;

$pagenav.=" <a href=javascript:dopage('result','$url?page=1');>首页</a> ";
if($prepg) $pagenav.=" <a href=javascript:dopage('result','$url?page=$prepg');>前页</a> "; else $pagenav.=" 前页 ";
if($nextpg) $pagenav.=" <a href=javascript:dopage('result','$url?page=$nextpg');>后页</a> "; else $pagenav.=" 后页 ";
$pagenav.=" <a href=javascript:dopage('result','$url?page=$pagenum');>尾页</a> ";
$pagenav.="</select> 页,共 $pagenum 页";

//假如传入的页数参数大于总页数,则显示错误信息
If($page>$pagenum){
       Echo "Error : Can Not Found The page ".$page;
       Exit;
}

$info=mysql_query("select * from cr_userinfo limit $offset,$num");   //获取相应页数所需要显示的数据
While($it=mysql_fetch_array($info)){
       Echo $it['username'];
       echo "<br>";
}                                                              //显示数据
  echo"<br>";
  echo $pagenav;//输出分页导航
  
?>

[!--infotagslink--]

相关文章

  • vue+高德地图实现地图搜索及点击定位操作

    这篇文章主要介绍了vue+高德地图实现地图搜索及点击定位操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-09-09
  • 站内搜索关键词变亮方法

    我们这个做法是把搜索结果出来,与搜索关键词相同的替换成高亮的字, 我们会用到str_replace(你找的关键字,你找的关键字,$str); 就这么容易了,好了下面我们来看一...2016-11-25
  • 怎么对百度网页搜索的检索指标进行评估

    用户为满足自己某种需求而来到搜索引擎的,判断用户的需求是做好网站的开始。只有准确地判断出用户需求,了解用户搜索的目的,才能合理地衡量出一个网站结果的质量好,做好搜...2016-10-10
  • uniapp 仿微信的右边下拉选择弹出框的实现代码

    这篇文章主要介绍了uniapp 仿微信的右边下拉选择弹出框的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-07-12
  • php搜索csv表格中是否存在指定数据

    php搜索csv中的数据原理是打开csv文件,然后一行行搜索指定的内容是否包含在我们读取这代码中,如果是返回true。 //搜索csv中指定内容 代码如下 复制代码...2016-11-25
  • 基于element-ui封装可搜索的懒加载tree组件的实现

    这篇文章主要介绍了基于element-ui封装可搜索的懒加载tree组件的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-05-23
  • 解决vue动态下拉菜单 有数据未反应的问题

    这篇文章主要介绍了解决vue动态下拉菜单 有数据未反应的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-06
  • pycharm 如何取消连按两下shift出现的全局搜索

    这篇文章主要介绍了pycharm 如何取消连按两下shift出现的全局搜索?下面小编就为大家介绍一下解决方法,还等什么?一起跟随小编过来看看吧...2021-01-16
  • DropDownList添加客户端下拉事件操作

    我们知道,DropDownList下拉框是一个服务器控件,有时候,有些朋友为了方便绑定DropDownList下拉框的选项,但又想在DropDownList实现客户端的下拉事件,那该怎么实现呢?...2021-09-22
  • Angular2搜索和重置按钮过场动画

    这篇文章主要介绍了Angular2搜索和重置按钮过场动画,需要的朋友可以参考下...2017-05-27
  • yii2带搜索功能的下拉框实例详解

    带搜索功能下拉框在项目中经常会用到,下面小编把实现代码分享到脚本之家平台,供大家参考...2016-05-13
  • 如何避免被搜索引擎视为作弊

      一个网站要想成功注册,它起码应具备两个条件,一是网站本身要有较好的内容和设计,二是网站没有作弊行为。这里所谓的“作弊”,是指采用一些特殊的、有悖常规的网...2016-09-20
  • PHP网络开发详解:搜索页面的设计

    PHP对于数据库的搜索主要通过使用SQL语句中的like子句来实现。如果同时搜索多个关键词,可以使用union子句来将搜索结果合并起来。以下代码实现了一个搜索页面...2016-11-25
  • 网站的聚合页或站内搜索页怎么会沦为百度搜索打击对象

    网站运营是很多人向往的赚钱方法,一些网站会发现,自己做的聚合页面和站内搜索页面被百度搜索无情打击,这是为什么,不知道原因的伙伴下面跟小编一起来看看。 今天杨子...2017-07-06
  • 精华:GOOGLE搜索秘籍全攻略

    一,GOOGLE简介   Google(www.google.com)是一个搜索引擎,由两个斯坦福大学博士生Larry Page与Sergey Brin于1998年9月发明,Google Inc. 于1999年创立。2000年7月...2016-09-20
  • ECMS(帝国CMS)搜索伪静态教程

    本次修改是基于ECMS(帝国cms) EmpireCMS v7.0 Free (201301151518)版本下测试修改的。其他未测试,大同小异吧。可以根据修改做修改即可...2015-12-30
  • Asp.net中使用DapperExtensions和反射来实现一个通用搜索

    这篇文章主要介绍了Asp.net中使用DapperExtensions和反射来实现一个通用搜索功能,非常不错,具有参考解决价值,需要的朋友可以参考下...2021-09-22
  • 用php实现真正的连动下拉列表

    下面的两个文件copy到同一个文件下,通过web路径访问index.html看看吧,这个是通过iframe来实现的连动更新,list.php目前的内容比较简单,你看通过list.php来进行数据库查询,...2016-11-25
  • .NET使用js制作百度搜索下拉提示效果(不是局部刷新)实现思路

    搞了个不是局部刷新的百度搜索框下拉提示效果大致思路:前台放一个input标签,然后当该标签内的值输入有变化的时候,调用后台代码查询 符合条件的数据绑定ListBox,感兴趣的朋友可以了解下...2021-09-22
  • Vue实现下拉加载更多

    这篇文章主要为大家详细介绍了Vue实现下拉加载更多,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-05-09