注册 登录
编程论坛 ASP技术论坛

想实现这个功能,但不知道哪里有问题,新手

唯入进来 发布于 2010-05-28 18:35, 743 次点击
新手,想实现这个功能,从xxx.asp?id=*传过来的id参数然后判断载入不同页面,下面的代码是不是有问题?麻烦,谢谢。


<%id = trim(request.QueryString("id"))%>
<% if id = 1 Then %>
<!--#include file="a.asp"-->
<% elseif id = 2 Then %>
<!--#include file="b.asp"-->
<% elseif id = 3 Then %>
<!--#include file="c.asp"-->
<% elseif id = 4 Then %>
<!--#include file="d.asp"-->
<% else %>
<!--#include file="e.asp"-->
<% end if %>
10 回复
#2
yms1232010-05-28 18:56
当然有问题,include是优先载入的,不受代码影响。
也就是说你include的那几个文件会在开始时就载入了
#3
gupiao1752010-05-28 19:30
你试着这样改,也能达到动态加载的目的!
<%id = trim(request.QueryString("id"))
if id = 1 Then
server.transfer("a.asp")
elseif id = 2 Then
server.transfer("b.asp")
elseif id = 3 Then
server.transfer("c.asp")
elseif id = 4 Then
server.transfer("d.asp")
else
server.transfer("e.asp")
end If
%>
如果你希望a,b,c,d.asp等程序执行完成后能返回调用页,就把transfer改成execute
#4
唯入进来2010-05-28 19:45
以下是引用gupiao175在2010-5-28 19:30:29的发言:

你试着这样改,也能达到动态加载的目的!
<%id = trim(request.QueryString("id"))
if id = 1 Then
server.transfer("a.asp")
elseif id = 2 Then
server.transfer("b.asp")
elseif id = 3 Then
server.transfer("c.asp")
elseif id = 4 Then
server.transfer("d.asp")
else
server.transfer("e.asp")
end If
%>
如果你希望a,b,c,d.asp等程序执行完成后能返回调用页,就把transfer改成execute

咦,厉害,这个貌似可以了,但是如果只是xxx.asp打开好像错误,
#5
icecool2010-05-28 21:26
那你就加一个IF ID=""就行了
#6
唯入进来2010-05-28 21:45
试了,貌似不行,等号旁边的空格有影响吗?
#7
icecool2010-05-28 22:04
因为trim(str)当str为空时就出差,
你要在判断request.QueryString("id")不为空时才可用trim(),
<%
if request.QueryString("id")= "" then
   response.write "参数错误"
else
id = trim(request.QueryString("id"))
if id = 1 Then
server.transfer("a.asp")
elseif id = 2 Then
server.transfer("b.asp")
elseif id = 3 Then
server.transfer("c.asp")
elseif id = 4 Then
server.transfer("d.asp")
else
server.transfer("e.asp")
end If
end if
%>
#8
唯入进来2010-05-28 22:33
response.write "参数错误"
换成
server.transfer("***.asp")
可以吗?
#9
icecool2010-05-28 22:34
试试不就知道?
#10
唯入进来2010-05-29 00:07
可以了,多谢各位,我先试试实际用到程序行不行
#11
唯入进来2010-05-29 00:09
先结贴去
1