我们经常用GOOGLE来搜索东东,也看到了它的在结果中搜索的功能。
在论坛中曾有人问到,如果用 ASP 在搜索结果中再次搜索的问题。
下面就是一个完整的解决方案。
设计思路:
把搜索的内容传递过来,中间用“,”号隔开,统计出搜索的关键字,然后用sql语法的“and”连接起来形成一个新的查询语句。
ASP代码,下面的代码不提供数据库下载,如果你要进行测试,可以新建一个ACCESS数据库,在里面新建一个“capital”字段就可以了。
代码拷贝框<title>在结果中再搜索</title> <body bgcolor="#FFFFFF"> <% u_search=request.form("u_search") u_prev_search=request.form("u_prev_search") u_search_within=request.form("u_search_within") if u_search <> "" then if u_prev_search = "" then u_prev_search=u_search else u_prev_search=u_prev_search &","& u_search g_prev_search=split(u_prev_search,",") num_inputted=ubound(g_prev_search) end if sql= "select * from states where (capital like @#%%"& u_search & "%%@#) " if u_search_within = "Yes" then for counter =0 to num_inputted-1 sql=sql& "and (capital like @#%%"& g_prev_search(counter) & "%%@#) " next end if aclearcase/" target="_blank" >ccessdb="state_info" cn="DRIVER={Microsoft Access Driver (*.mdb)};" cn=cn & "DBQ=" & server.mappath(accessdb) Set rs = Server.CreateObject("ADODB.Recordset") rs.Open sql, cn @# 如果没有找到相应的信息 if rs.eof then %> 没有任何记录 <%@# 有相应的信息就列出来 else rs.movefirst do while Not rs.eof %> <%= rs("capital") %><br> <% rs.movenext loop end if end if %> <!-- Begin Form Input Area --> <form action="<%= request.servervariables("script_name") %>" method="post"> <input type="text" name="u_search" value="<%= u_search %>"> <br> <% if u_search <> "" then %> <input type = "radio" name="u_search_within" checked value="No"> 重新搜索 <input type = "radio" name="u_search_within" value="Yes"> 在结果中搜索 <% if u_search_within = "Yes" then %> <input type = "hidden" name="u_prev_search" value="<%= u_prev_search %>"> <% else %> <input type = "hidden" name="u_prev_search" value="<%= u_search %>"> <% end if%> <br> <% end if%> <input type="submit" value="搜索"> </form> <!-- End Form Input Area --> <p> </p> <%= sql %> [Ctrl+A 全部选择 然后拷贝]
原文转自:http://www.ltesting.net