ASP表单提交后跳转页面的问题

ouyangshirui 2008-03-02 10:12:11
我使用DW 做ASP网页,数据库是access,脚本语言vbs

A页面是 用表单插入新记录页面
B页面是 插入新记录后跳转的页面

请问如何把在A页面里的表单里面的一个值,传递到B页面
...全文
2310 41 打赏 收藏 转发到动态 举报
写回复
用AI写文章
41 条回复
切换为时间正序
请发表友善的回复…
发表回复
dqlfjy 2008-03-08
  • 打赏
  • 举报
回复
隐藏域传值不安全,查看源文件照样可以看到传的值内容.
songxiang_zaiya 2008-03-07
  • 打赏
  • 举报
回复
用 xxxx.asp?传递参数名=参数值
ouyangshirui 2008-03-06
  • 打赏
  • 举报
回复
事实上,我发现在A页面,表单的信息是传递给了自身,然后再跳转到B页面,这样B页面是无法获得参数的,方法我倒是可以按8楼的这么做,但是多个参数提交后,如何被B页面拆分是个问题
adoms 2008-03-06
  • 打赏
  • 举报
回复
在表单中加一个<input type="hidden" name="你的变量名" value="你要传的变量值">就可以随表单传出去了
张路 2008-03-06
  • 打赏
  • 举报
回复
你用隐含域。

dqlfjy 2008-03-04
  • 打赏
  • 举报
回复
<form name="myForm" method="post" action="xx.asp">
</form>
把你要传值的表单放在form里面就可以传到"xx.asp"这个页面了.
sayfree 2008-03-04
  • 打赏
  • 举报
回复
用dw时现实功能,产生的代码很难读,最好是借鉴一些现成的程序,参考一下。
一般是这样转接:
在A页面中使用form的action=xx.asp,在提交表单后,数据在xx.asp页面处理,一般是用来把数据写入数据库。


<%
dim num1,num2
num1=request("text1") 'text1是A页面上的文本框名,下同。
num2=request("text2")
dim rs,sql
rs=......
sql=.......
rs.open conn,sql,1,3
rs.addnew
rs("aaaa")=num1 'aaaa为数据库里的相应的字段名。
rs("bbbb")=num2
rs.update
rs.close
set rs=nothing

%>

这个xx.asp页面可以不显示。在数据写入完成后,直接用response.redirect转到一个新的页面。
mxbzz2008 2008-03-04
  • 打赏
  • 举报
回复
mguj lov h r yuif!
sayfree 2008-03-04
  • 打赏
  • 举报
回复
用dw是现实功能,产生的代码很难读,最好是借鉴一些现成的程序,参考一下。
一般是这样转接:
在A页面中使用form的action=xx.asp,在提交表单后,数据在xx.asp页面处理,一般是用来把数据写入数据库。


<%
dim num1,num2
num1=request("text1") 'text1是A页面上的文本框名,下同。
num2=request("text2")
dim rs,sql
rs=......
sql=.......
rs.open conn,sql,1,3
rs.newadd
rs("aaaa")=num1 'aaaa为数据库里的相应的字段名。
rs("bbbb")=num2
rs.uodate
rs.close
set rs=noting

%>

这个xx.asp页面可以不显示。在数据写入完成后,直接用response.redirect转到一个新的页面。
hufanmei 2008-03-04
  • 打赏
  • 举报
回复
<form name=myform method=post action=xx.asp>
</form>
用post传递
ouyangshirui 2008-03-03
  • 打赏
  • 举报
回复
实际上我根据
这篇文章,已经在B页面获得了传递的参数,但是只能传递一个,而不是多个,因为即使传递了多个参数,如果用步骤三来显示的话,传递的多参数将合在一起显示,这怎么办

这个教程主要学习在 DreamWeaver MX 中如何修改“添加/修改编辑数据”的代码,以便使用户提交的信息在下一页有效。
 
  当使用“Insert”或者“Update”时,这个问题经常会被遇到,表单自动被提交,然后页面地址指向第二页,这时,在第一页中输入的表单的数据值在第二页中是无效的。我知道使表单的值与更改后的地址URL相联系并进行扩展是可能的。然而,当我进一步查看MM的代码后,我意识到可以通过修改一些代码来达到在第二页中调用前页提交数据的目的。

步骤1:在标准模式下,用 Macromedias 代码创建 “Insert Record” 页面或者 “Edit Record” 页面 。输入“page2"作为指向后的页。

  现在,打开你的代码来看,会发现下面的代码。这段代码在每个 MM “Insert” 或者 “Update Record” 页面中是相同的:

' append the query string to the redirect URL
If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
Else
MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
End If
End If
红色的代码是我们将要修改的有问题的代码。MM通过绑定数据到新地址并将这些表单元素传递到下一页,然而,Request.QueryString 是这样一种代码:在表单以“GET”方式传递数据时,将所有数据绑定到URL中“?”之后。所以当MM使用POST方式传递数据时,Request.QueryString是空的。因此为了得到“?”后面所有内容的值我们需要使用用“Request_Form”.

步骤2:用下面所示的 Request.Form 代替上面所有的红色代码。

' append the query string to the redirect URL
If (MM_editRedirectUrl <> "" And Request.Form <> "") Then
If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.Form <> "") Then
MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.Form
Else
MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.Form
End If
End If
步骤3:现在可以使用

<% = Request.QueryString("yourvalue") %>
在第二页上显示你所提交过的表单数据了。

注意:这种方法使用使用未加密字符串传递所有的值,在URL中是可见的。
ouyangshirui 2008-03-03
  • 打赏
  • 举报
回复
我查了一些资料,把
append the query string to the redirect URL
If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
Else
MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
End If
中红色的部分改为request.form,就可以把希望传递的值加到URL后传递到B页面,但是如何在B页中获取这个值呢?
ouyangshirui 2008-03-03
  • 打赏
  • 举报
回复
拜托楼上能写修改一下我贴出的代码么..谢谢
Go 旅城通票 2008-03-03
  • 打赏
  • 举报
回复
输出js,用这个js生成一个表单然后用post方法提交到b
a.asp
dim script:script="<script>"
script=script&"var f=document.createElement('form');"&vbnewline
script=script&"f.action='b.asp';f.method='post';"&vbnewline
script=script&"document.body.appendChild(f);"&vbnewline
script=script&"var a=document.createElement('input');"&vbnewline
script=script&"a.type='hidden';a.name='a';"&vbnewline
script=script&"a.value='"&request.form("需要传递的form键")&"';"&vbnewline
script=script&"f.appendChild(a);"&vbnewline
script=script&"f.submit();"&vbnewline
script=script&"</script>"

response.write script'输出js



b.asp
response.write "在a.asp中操作完后传递过来的参数:"&request.form("a") 
  • 打赏
  • 举报
回复
直接跳转肯定不行的!直接跳转的就是GET方式!
myvicy 2008-03-03
  • 打赏
  • 举报
回复
在a.asp里
a = request("a")
b = request("b")
response.redirect "b.asp?a="&a&"&b="&b
然后在b.asp里可以和a.asp里一样取值,如果还有更多的值照此继续添加即可。
不知道是否符合你的意思。
ouyangshirui 2008-03-03
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 showbo 的回复:]
A.asp

If MM_editRedirectUrl <> "" And Request.form("需要传递的form键") <> "" Then
MM_editRedirectUrl = MM_editRedirectUrl & "?a=" & Request.form("需要传递的form键")
Else
MM_editRedirectUrl = MM_editRedirectUrl &"?a=NULL"
End If


b.asp
response.write "在a.asp中操作完后传递过来的参数:"&request.querystring("a")
[/Quote]

这样会把表单里面的值显示在链接里,不安全呀
ouyangshirui 2008-03-03
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 chinmo 的回复:]
你要POST方式传递给跳转页B
那么你就得该方式,要么就用SESSION保存数据这样也不会在地址栏上面看到信息
[/Quote]
session 总是丢失,有时是几分钟,有时是一登陆,所以才改用表单
Go 旅城通票 2008-03-03
  • 打赏
  • 举报
回复
A.asp

If MM_editRedirectUrl <> "" And Request.form("需要传递的form键")<>"" Then
MM_editRedirectUrl = MM_editRedirectUrl & "?a=" & Request.form("需要传递的form键")
Else
MM_editRedirectUrl = MM_editRedirectUrl &"?a=NULL"
End If



b.asp
response.write "在a.asp中操作完后传递过来的参数:"&request.querystring("a")
  • 打赏
  • 举报
回复
你要POST方式传递给跳转页B
那么你就得该方式,要么就用SESSION保存数据这样也不会在地址栏上面看到信息
加载更多回复(17)

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧