凹丫丫网络社区's Archiver

Amm 发表于 2008-5-16 19:26

[asp] 获取所有QueryString和Form的值并且过滤形成QueryString的字符串(分页时常用)

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

页: [1]

Powered by Discuz! Archiver 7.0.0  © 2001-2009 Comsenz Inc.