這個教程主要學習在 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中是可見的