获取所有QueryString和Form的值
不好意思 小弟都是自学的 什么地方错了 请版主指正 别影响 新手...
asp没有像.net的ViewState
所以就具体 分类的分页..等 这样说不清楚 举个例子。
比如:
news.asp?classid=1&showtype=image&page=2
你要分页的时候不得不写成这样
<a href="?classid=<%=Request.QueryString("classid")%>&showtype=<%=Request.QueryString("showtype")%>&page=<%=int(Request.QueryString("page"))+1%>">下一页</a>
要传很多的值 很麻烦。
为了解决这个麻烦 我就产生了一个想法 能不能写一个函数接收这个页面接收到的所有的get方法传过来的值 和 post方法传过来的值。
但这样一想 也不行
假如我获取了classid=1&showtype=image&page=2
但我要翻页 必须再传一个新的page=3 这样就冲突了 服务器Request.QueryString("page")将会得到的是2,3这样就实现不了我想要的效果
起先我用了一种很笨的方法。。循环N多次 效率相当低下。但实现了(在这就不提了)
后来我选择了用正则表达式来过滤所不需要的值。
不说废话了 帖函数上来
引用:
'函数是用来取得所有当前页面Request.QueryString 和Request.Form 返回 &id=值&clsid=值 这种形式
function strRequest(str)
QueryString=Request.QueryString
Form=Request.Form
if QueryString="" and Form="" then exit function
strRequest=QueryString&"&"&Form
str=split(str,",")
for i=0 to ubound(str)
Pattern=Pattern&str(i)&"\S*?&|&"&str(i)&"\S*?$|"
next
Pattern=Pattern&"&*$"
Set re=new RegExp
re.IgnoreCase =True
re.Global=True
re.Pattern=Pattern
strRequest=re.Replace(strRequest,"")
strRequest="&"&strRequest
set re=nothing
end function
刚转的.net asp的资料没在现在的公司 以上代码从我的QQ空间复制过来的 QQ空间发这种日志很容易丢失敏感的符号
希望没有错吧。
我举个使用的例子.
第<a href="?page=5<%=strRequest("page")%>">5</a>页
这里strRequest("page")就是获取所有接收过来的QueryString值和Form值
排列成这种字符串"&class=1&showtype=image"
链接的地址很显示就成为了
?page=5&class=1&showtype=image
有时候我们需要过滤掉两个值strRequest("page,showtype")这样写就可以了
这样以后分页 或者其它需要传很多值的地方用起来是不是就很方便了
PS:突然心血来潮,混经典这么长时间了 只会灌水 发一技术帖吧。直接在发新话题文本框中写的 有错误指出来哈。。在上班呢 得赶紧干活了。
再PS:我另一个经典ID是include 所以作者是include 另我QQ昵称也是这个...
可以用这个写一个通用的分页 以后都不用改的。
我那有一个通用的分页代码 不过有点乱 就不帖了 这些都简单了 也没那么一个值一个值的传 那么烦了 自己动手写一个自己的通用的分页程序吧
也有其它很多地方可以用哦。不要局限在分页上...
补充:asp教程,ASP入门