这个教程主要学习在 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中是可见的。