首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • ASP表单提交后跳转页面的问题
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-03-02 22:12:11 楼主
    我使用DW 做ASP网页,数据库是access,脚本语言vbs

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

    请问如何把在A页面里的表单里面的一个值,传递到B页面
    100  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-03-02 22:30:341楼 得分:0
    是不是和这段有关系呀

    ' 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
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-03-02 22:31:022楼 得分:0
    A页面:
    <FORM ACTION="B" METHOD=POST>
    姓名: <INPUT TYPE=TEXT NAME="NAME">
    </FORM>
    B页面:
    <%
    RESPONSE.WRITE REQUEST.FORM("NAME")
    %>
    页面的流程是你在A页面单中将姓名输入后,A页面通过ACION=B将表单内容提交给B页面,B页面通过REQUEST.FORM收集到名字内容,再通过RESPONSE将名字输出
    这就是我的一点理解,不知道对你有没有帮助.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-03-02 22:33:533楼 得分:0

    我的意思是

    通常DW 中  用服务器行为--插入记录,会有一个可选的插入成功后跳转的页面 ,让你添,但是这个页面是获得不了表单中某一个值的,那么如何把表单中的某一个值传递到这个跳转页面中呢?


    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-03-02 22:48:064楼 得分:0
    你的方法是在一般用表单提交到下一页面的时候可以,但是这个表单实际上是用于插入记录的,在插入记录后跳转到B页,B页并不能收到前一页面的传递的值呀
    <%
    ' *** Edit Operations: declare variables

    Dim MM_editAction
    Dim MM_abortEdit
    Dim MM_editQuery
    Dim MM_editCmd

    Dim MM_editConnection
    Dim MM_editTable
    Dim MM_editRedirectUrl
    Dim MM_editColumn
    Dim MM_recordId

    Dim MM_fieldsStr
    Dim MM_columnsStr
    Dim MM_fields
    Dim MM_columns
    Dim MM_typeArray
    Dim MM_formVal
    Dim MM_delim
    Dim MM_altVal
    Dim MM_emptyVal
    Dim MM_i

    MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
    If (Request.QueryString <> "") Then
      MM_editAction = MM_editAction & "?" & Server.HTMLEncode(Request.QueryString)
    End If

    ' boolean to abort record edit
    MM_abortEdit = false

    ' query string to execute
    MM_editQuery = ""
    %>
    <%
    ' *** Insert Record: set variables

    If (CStr(Request("MM_insert")) = "form1") Then

      MM_editConnection = MM_PESCI_STRING
      MM_editTable = "销售单主表"
      MM_editRedirectUrl = "newok.asp"
      MM_fieldsStr  = "textfield ¦value ¦textfield2 ¦value ¦textfield7 ¦value ¦select ¦value ¦textfield8 ¦value ¦textfield5 ¦value ¦textfield6 ¦value ¦textfield3 ¦value ¦textfield4 ¦value ¦textfield9 ¦value ¦textfield10 ¦value ¦textfield11 ¦value ¦textfield12 ¦value ¦textfield13 ¦value ¦sess ¦value"
      MM_columnsStr = "销售单号 ¦',none,'' ¦业务员 ¦',none,'' ¦销售日期 ¦',none,'' ¦开单公司 ¦',none,'' ¦审核状态 ¦',none,'' ¦联系人姓名 ¦',none,'' ¦职务 ¦',none,'' ¦性别 ¦',none,'' ¦地址 ¦',none,'' ¦座机 ¦',none,'' ¦传真 ¦',none,'' ¦手机 ¦',none,'' ¦电邮 ¦',none,'' ¦客户名称 ¦',none,'' ¦备注 ¦',none,''"

      ' create the MM_fields and MM_columns arrays
      MM_fields = Split(MM_fieldsStr, " ¦")
      MM_columns = Split(MM_columnsStr, " ¦")
     
      ' set the form values
      For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
        MM_fields(MM_i+1) = CStr(Request.Form(MM_fields(MM_i)))
      Next

      ' 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

    End If
    %>
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-03-02 23:49:155楼 得分:0
    很简单的时候,加参数就可以了!!!

    这问题都一时想不开???

    在插入记录后跳转到B页,B页并不能收到前一页面的传递的值呀


    插入的数据有一数组保存作为插入成功后跳转的页面的参数变量传递过去
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-03-03 00:05:086楼 得分:0
    拜托楼上能写修改一下我贴出的代码么..谢谢
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-03-03 00:29:167楼 得分:0
    我查了一些资料,把
    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页中获取这个值呢?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-03-03 00:57:148楼 得分:0
    实际上我根据
    这篇文章,已经在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中是可见的。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wpjwll
    • 等级:
    发表于:2008-03-03 08:22:389楼 得分:0
    在B页面用request.form获取A页的的值!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-03-03 09:08:5310楼 得分:0
    你自己在8楼不是已经讲的很仔细了吗?现在还有什么问题呢?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-03-03 09:22:2111楼 得分:0
    A页面:
    <FORM ACTION="B?aa=..." METHOD=POST>
    姓名: <INPUT TYPE=TEXT NAME="NAME">
    </FORM>
    B页面:
    <%
    aa=request("aa")
    conn.execute("insert....")
    response.redirect "B?aa="&aa
    %>
    用这个方法就可以了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-03-03 11:07:0512楼 得分:0
    引用 10 楼 myvicy 的回复:
    你自己在8楼不是已经讲的很仔细了吗?现在还有什么问题呢?


    问题是 这个方法只能只能传递一个参数,而不是多个,因为即使传递了多个参数,如果用步骤三来显示的话,传递的多参数将合在一起显示,并且,这样子会把信息显示在链接中,并不安全。所以行不通呀
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-03-03 11:10:0713楼 得分:0
    引用 9 楼 wpjwll 的回复:
    在B页面用request.form获取A页的的值!

    我尝试过了,但是研究一下代码就可以看到,在插入记录的A页面中,action""中,不是跳转到B页面,而是执行插入记录,在
    这段代码中
    If (CStr(Request("MM_insert")) = "form1") Then

      MM_editConnection = MM_PESCI_STRING
      MM_editTable = "销售单主表"
      MM_editRedirectUrl = "newok.asp"
    才会出现B页面的信息,但是这样,A页面的表单信息是不会被传递到B页面的。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-03-03 11:11:1414楼 得分:0
    那你就用session保存
    要么你就重新修改代码改成post提交的!只有这么做了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-03-03 11:14:1815楼 得分:0
    引用 11 楼 chshb38 的回复:
    A页面: 
    <FORM ACTION="B?aa=..." METHOD=POST> 
    姓名:  <INPUT TYPE=TEXT NAME="NAME"> 
    </FORM> 
    B页面: 
    <% 
    aa=request("aa")
    conn.execute("insert....")
    response.redirect "B?aa="&aa
    %> 
    用这个方法就可以了

    可是A页面表单现在是 <form name="form1" action=" <%=MM_editAction%>" method="POST">
    是执行的插入记录 而不是传递参数到B页面
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-03-03 11:19:4916楼 得分:0
    你要POST方式传递给跳转页B
    那么你就得该方式,要么就用SESSION保存数据这样也不会在地址栏上面看到信息
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-03-03 11:19:5017楼 得分:0
    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")
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-03-03 11:41:3418楼 得分:0
    引用 16 楼 chinmo 的回复:
    你要POST方式传递给跳转页B
    那么你就得该方式,要么就用SESSION保存数据这样也不会在地址栏上面看到信息

    session 总是丢失,有时是几分钟,有时是一登陆,所以才改用表单
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-03-03 11:42:5419楼 得分:0
    引用 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")


    这样会把表单里面的值显示在链接里,不安全呀
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-03-03 11:58:4420楼 得分:0
    在a.asp里
    a = request("a")
    b = request("b")
    response.redirect "b.asp?a="&a&"&b="&b
    然后在b.asp里可以和a.asp里一样取值,如果还有更多的值照此继续添加即可。
    不知道是否符合你的意思。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-03-03 11:59:5221楼 得分:0
    直接跳转肯定不行的!直接跳转的就是GET方式!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-03-03 12:04:3422楼 得分:0
    输出js,用这个js生成一个表单然后用post方法提交到b
    a.asp
    VBScript code
    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
    VBScript code
    response.write "在a.asp中操作完后传递过来的参数:"&request.form("a")
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-03-03 13:16:3923楼 得分:0
    用值session("name")传递,在其他页面里跳转
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-03-03 14:02:5924楼 得分:0
    你可以直接用
    xx=request("xx")
    就可以了
    如果要显示
    <%=xx%>
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • liuchaolin
    • 等级:
    发表于:2008-03-03 14:08:3225楼 得分:0
    你用隐含域啊
    你的A页表单里放
    <input name="Find" type="hidden" id="Find" value="123142">
    B页
    <%
    Find=trim(Request.Form("Find"))
    Response.write(" <script>location.href='C.asp?Find="& Find &"'; </scrispt>")
    Response.end()
    %>
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-03-03 14:54:1526楼 得分:0
    这里都是高手啊,我初学的,多指教
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-03-03 15:55:1727楼 得分:0
    晕,这个传参数不是很容易就搞定啦
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-03-03 21:20:1528楼 得分:0
    该回复于2008-03-05 14:50:01被版主删除
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-03-03 21:20:2929楼 得分:0
    该回复于2008-03-05 14:50:00被版主删除
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-03-03 21:20:5030楼 得分:0
    该回复于2008-03-05 14:50:00被版主删除
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-03-03 21:21:1131楼 得分:0
    该回复于2008-03-05 14:50:00被版主删除
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天