您的当前位置:首页正文

html+ajax无刷新搜索

2024-04-18 来源:爱站旅游
导读html+ajax无刷新搜索


分享一个无刷新的html+ajax例子,代码共为3个页面,分别为search.html是搜索的html页面,样式自己定义,ajax.js全部js代码,ss.asp处理搜索的内容。代码不多很容易理解,学习吧都在代码中加了说明,如果你看不懂,就加我QQ463004799吧。下面说代码了哦。

1,search.html的代码,你复制全部哦

高级搜索_学习吧

学习吧站内高级搜索

  • 关键字:

    onkeyup=\"ajaxs(1);\" />

  • 栏目:

      

  •    实时显示


此处显示结果

2,ajax.js,跟上面那个文件在同目录

function createAjax() {

var _xmlhttp;

try {

_xmlhttp=new ActiveXObject(\"Microsoft.XMLHTTP\");

}

catch (e) {

try {

_xmlhttp=new XMLHttpRequest();

}

catch (e) {

_xmlhttp=false;

}

}

return _xmlhttp;

}

function ajax(page) {

//上面是JS代码,page是页数,

var gjz = window.document.ss.gjz.value;

var cl = window.document.ss.cl.value;

//上面是变量=表单传来的信息,ss是表单的名称,gjz等是文本框或者菜单的名称

var xmlhttp=createAjax();

if (xmlhttp) {

var content=document.getElementById('jieguo');

//定义显示内容到ID为jieguo的DIV里

xmlhttp.open('get','ss.asp?gjz='+gjz+'&cl='+cl+'&page='+page+'&n='+Math.random(),true);

//以GET的方式提交内容到ss.asp,并且带上参数,gjz和cl和页数,页数就是你打开的第几页,最后加上math.random是为了防止缓存信息不更新的。

xmlhttp.onreadystatechange=function() {

if (xmlhttp.readyState==4 && xmlhttp.status==200) {

content.innerHTML=unescape(xmlhttp.responseText);

//把从ss.asp里穿过来的内容显示出来

}

else {

content.innerHTML='正在加载搜索结果,请稍等......';

}

}

xmlhttp.send(null);

}

}

function ajaxs(){

//定义这个复选框的JS,

var f5=document.getElementById(\"f5\")

//让f5=复选框

if(f5.checked){

//如果复选框打上对勾就进行ajax代码里的页数1,这就对应了哪个gjz的文本框输入内容就显示了

ajax(1);

}

}

3,ss.asp,也是同目录

<%

'这里是数据库连接

'数据库里有表为b1,b2,b3,b4,每个表里有字段,id自动编号,bt这是标题可以是备注,sj为时间,

Dim page,cl,gjz,'定义变量

gjz=trim(request.QueryString(\"gjz\"))'参数传值

gjz=replace(\"\"&gjz&\"\替换关键字中的空格

cl=request.QueryString(\"cl\")

page = unescape(Request.QueryString(\"page\"))

If page<>\"\" Then'如果 页码=空

if gjz=\"\" or len(gjz) >20 then '关键字为空或者大于20

response.Write(escape(\"关键字不能为空\"))

response.End()

end if

Set rs = Server.CreateObject(\"ADODB.Recordset\")'链接表

'下面是查询字段

rs.open\"SELECT * FROM \"&cl&\" where bt like '%\"&gjz&\"%' ORDER BY id desc\这里是选择穿过来的biao,中的bt包含关键字

If rs.EOF Then'如果为空

Response.Write(escape(\"抱歉!表里暂时没有关键字为\"&gjz&\"的内容!\"))

Else'否则

rs.pagesize =5'每页为5条

page = CLng(page)

If page<1 Then

page = 1

ElseIf page>rs.pagecount Then

page = rs.pagecount

End If

rs.absolutepage = page

Dim i, Str,redbt,redid

For i = 1 To rs.pagesize'循环5条记录

redid=replace(rs(\"id\"),\"\"&gjz&\"\class=\"\"red\"\">\"&gjz&\"\")'定义红色高亮显示

redbt=replace(rs(\"bt\"),\"\"&gjz&\"\

Str = Str &\"\"'这里是定义输出什么内容

Str = Str &\"

  • \"

    Str = Str &\"ID:\"&redid&\"
    \"

    Str = Str &\"标题:\"&redbt&\"
    \"

    Str = Str &\"时间:\"&rs(\"sj\")&\"
    \"

    Str = Str &\"

  • \"

    Str = Str &\"\"

    rs.movenext

    If rs.EOF Then Exit For'如果为空则退出循环

    Next

    Str = Str & \"<< \"'首页

    For i = 1 To rs.pagecount

    If i = page Then

    Str = Str & \"\" & i & \" \"

    Else

    Str = Str & \"\" & i & \" \"

    End If

    Next

    Str = Str & \" >>\" '尾页

    Str = Str & \"  共\"&rs.pagecount&\"页  共\"&rs.recordcount&\"条 每页\"&rs.pagesize&\"条\"

    Str = escape(Str)

    Response.Write(Str)'输出以上结果,切记必须以escape(\"\")这样输出,也就是说必须用response(escape(\"输出内容\"))

    End If

    rs.Close

    Set rs = Nothing

    conn.Close

    Set conn = Nothing

    response.End()

    Else

    End If

    %>

    总代码结束。效果如,当然样式自己定义:http://www.xuexb.com/search.html

    下面总结下。

    数据库连接你自己写吧,不要说不会哦。数据库里有4个表,分别为b1,b2,b3,b4,每个表里有字段id自动编号,bt备注,sj时间等,等你熟悉了 这些东西都可以自己改的。

    在ss.asp里输出的时候必须用response(escape(\"输出内容\"))这个格式才会显示到

    search.html里哦。

    版权终归原创作者(学习吧)所有,转载请保留原创作者信息

    因篇幅问题不能全部显示,请点此查看更多更全内容