您的位置:程序门 -> web 开发 -> asp



请教高手给一个静态页面传递参数的思路!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


请教高手给一个静态页面传递参数的思路![已结贴,结贴人:chinayuy]
发表于:2007-01-06 14:35:36 楼主
http://detail.b2b.hc360.com/detail/turbine/template/shop%2cinfo_detail.html?providerid=100001326355&ciid=155265&psort=3

我想问一下大家,他的这个页面是已经生成的,还是通过参数即时生成,还是通后后台页面生成,再用javascript读出来呢?

请高人给个思路,用asp能否达到如此呢?
发表于:2007-01-06 14:49:011楼 得分:5
这个貌似不是静态的
应该url重写
发表于:2007-01-06 14:55:342楼 得分:0
能给个思路吗?
按我的理解
shop%2cinfo_detail.html?providerid=100001326355&ciid=155265&psort=3
利用shop%2cinfo_detail.html这个页通过javascript将后面的参数读出来
再提交给asp页面进行处理,再将处理结果response.write输出,是这样吗?能不能写个简单的代码我看看?
发表于:2007-01-06 15:09:253楼 得分:0
静态页也可以获得传过来的数据,当然了重写更简单方便,建议重写
发表于:2007-01-06 15:10:414楼 得分:15
象这种页,可以重写为

template/shop/cinfo_detail/providerid_1_00001326355_ciid_155265_psort_3.htm
发表于:2007-01-06 15:12:585楼 得分:0
然后在httpd.ini中加入:
rewriterule   /template/shop/cinfo_detail/providerid_(\d+)_(\d+)_ciid_(\d+)_(\d+)_psort_(d\+)\.htm   /template/shop/cinfo_detail\.asp\?id=$1&xx=$2&xxx=$3   ....   [n,i]
发表于:2007-01-06 15:30:476楼 得分:0
deknight()  

如果不用httped.ini中加入你上述代码进行url重写,有没有其他办法可以实现呢?

因为用到httpd.ini需要有iis的控制权,正如我回复一楼的方法可否能实现?
发表于:2007-01-06 15:37:107楼 得分:0
httpd.ini不需要iis的权限,你只需配置好这个文件,然后给你的站点增加名为re的筛选器,选择好相应的.dll文件就可以了。
发表于:2007-01-06 15:40:188楼 得分:0
楼上,能否给个详细介绍我看看?

除了url重写,没有其他办法可行吗?呵呵
发表于:2007-01-06 15:48:259楼 得分:0
第一页:
<input   type= "submit "   value= "测试 "   onclick= "window.open( 'test.htm ', ' ', ' '); ">

test.htm


<!doctype   html   public   "-//w3c//dtd   html   4.01   transitional//en ">
<html>
<head>
<title> untitled   document </title>
<meta   http-equiv= "content-type "   content= "text/html;   charset=gb2312 ">
</head>
<body>
<script>
var   obj   =   window.opener.input.value;
document.write( "这就是上页来的\ " "+obj+ "\ " ");
</script>
</body>
</html>
发表于:2007-01-06 15:51:5810楼 得分:0
如果担心弹出被屏蔽,也可以:
========================
以下代码存为test.htm   输入时用test.htm?test=1   test=2     test=3分别读3张不同的图
==========================
<script>

  var   viptag   =   document.getelementbyid( "viptag ");
  var   url=location.search;
  var   qua;
  var   request   =   new   object();
  if(url.indexof( "? ")!=-1){
      var   str   =   url.substr(1)    
      strs   =   str.split( "& ");
      for(var   i=0;i <strs.length;i++)
      {    
        request[strs[i].split( "= ")[0]]=unescape(strs[i].split( "= ")[1]);  
        }
  }
  switch   (request[ "test "])   {
        case   "1 "   :
              viptag.innerhtml= ' <a   href= "http:// "   target= "_blank "> <img   id= "vipimg "   src= "3.gif "   width= "560 "   height= "390 "   border= "0 "> </a> ';
          break;
          case   "2 "   :
              viptag.innerhtml= ' <a   href= "http:// "   target= "_blank "> <img   id= "vipimg "   src= "2.gif "   width= "560 "   height= "390 "   border= "0 "> </a> ';
          break;
          case   "3 "   :
              viptag.innerhtml= ' <a   href= "http:// "   target= "_blank "> <img   id= "vipimg "   src= "1.gif "   width= "560 "   height= "390 "   border= "0 "> </a> ';
            break;
      default:  
            viptag.innerhtml= ' <a   href= "# "   target= "_blank "> <img   id= "vipimg "   src= "3.gif "   width= "560 "   height= "390 "   border= "0 "> </a> ';
    }  
</script>
===================================
发表于:2007-01-06 16:07:5611楼 得分:0
谢谢楼上的,刚才我也去看了一下url重写,也就是假静态
通过httpd.ini使用正则将.asp?**=**写成**.htm?**=**或者如你所说**/**/**.html

你上面写的我没有看明白
如果在test.htm   将**=**读进来,是否提交给asp处理呢?但这样来,又有一个问题,如果提交给asp处理,页面可能要刷新,或者,test.htm,隐藏转向asp处理再输出结果,url不变?

有点乱,不过谢谢你的意见,你再看看我想法,一会就结贴给分
发表于:2007-01-06 16:14:4512楼 得分:0
最简单的方法就是url重写
比如你原来的链接是del.asp?id= <%=rs( "id ")%> 可以写成del/del_id_ <%=rs( "id ")%> .htm
del_id可以不要,其实就是   del/1.htm   只不过为了安全,多加些字进去

在httpd.ini中
/del/del_id_(\d+)\.htm   /del\.asp?id=$1
发表于:2007-01-06 16:17:1113楼 得分:0
我的那个test.htm是你要链接的页
比如你的第一页是1.asp   里面有个链接   test.htm?test= <%=rs( "id ")%>
转到test.htm后,根据你的test=   来做判断,=1时test.htm显示1.gif   =2时显示2.gif
发表于:2007-01-06 16:50:0514楼 得分:0
谢谢楼主鼎力相助
但是,我看到的链接页面的url与显示的页面的url是一样的

都是:***.html?**=**

现在我再想请教一下楼上,我能不能把链接页面用url重写,把要显示的页面生成静态页面呢?

也就是索引页用url重写,能否行得通?
发表于:2007-01-06 17:01:0515楼 得分:0
我没太明白你的意思,你最好再说的清楚一点,比如
1.asp里有链接,链到2.asp
2.asp通过1.asp传过来的值做处理
发表于:2007-01-06 17:03:2116楼 得分:0
我要走了,你把要求写出来,回家我再看
发表于:2007-01-06 17:24:3517楼 得分:0
例:list.asp   '索引页

<a   href= "show.html?id=01 "> 标题1 </a> <br>
<a   href= "show.html?id=02 "> 标题1 </a> <br>
<a   href= "show.html?id=03 "> 标题1 </a> <br>
<a   href= "show.html?id=04 "> 标题1 </a> <br>

即然是索引页,那肯定有list.asp?page=2   page=3   ……

我能不能利用url重写索引页的url呢?
如list.asp?id=01,重写成
list.html?id=01或者list/01/list.html

还有,索引页的链接怎么写?
我看到的例子是 <a   href=show.html?id=01> 标题1 </a>
在show.html?id=01的页面的url依然是show.html?id=01
而您说的好像是
<a   href=show.asp?id=01> 标题1 </a>
然后显示show.asp的时候,url变成show.html?id=0是吗?

才接触这个,希望您能加我qq:808633,呵呵,向你请教
发表于:2007-01-06 18:10:5718楼 得分:0
索引页list.asp,你可能会有list.asp?id=1   =2   =3   ....这种
索引页可以重写
你的list.asp也是通过其他页链接过来或者是表单提交后过来的,对吧
那这个时候,list.asp的前一页,如果用重写,那么就把链接写为
list/ <%=rs( "id ").htm   它等同于   list.asp?id= <%=rs( "id ")%>  
比如id=1
转到索引页list.asp   这个时候我们得到的url应该是list/1.htm
在这页里,你还有个链接,是: <a   href= "show.html?id=01 "> 标题1 </a>
如果你的show这页是静态的,就用我给你的js代码获取传值,如果show这页是动态
那show.asp这页里的链接一定是: <a   href= "show.asp?id= <%=request( "id ")%> "> 标题1 </a>
这个时候再把它修改为 <a   href= "show/ <%=request( "id ")%> .htm "> 标题1 </a>
就可以了

再配置httpd.ini
[isapi_rewrite]
cacheclockrate   3600
rewriterule   /list/(\d+)\.htm   /list\.asp\?id=$1   [n,i]
rewriterule   /show/\d+)\.htm   /show\.asp\?id=$1   [n,i]

如果还不明白,你加我qq,我今天qq也不知道怎么了,+不了别人   1637119


快速检索

最新资讯
热门点击