如何将变量从隐藏的输入框传递到另一个页面
How to pass variable from hidden input box to another page
我试图从一个隐藏的输入文本框获取一个值到另一个页面,但它不起作用。如何将变量从隐藏的输入框传递到另一个页面?
Page1.asp
<input type="hidden" name="FormID" value="<% objRS("Form_id")%>
...
<input type="hidden" name="FormID" value="<%= nFormID %>">
<input type="button" value="Open Page2" onclick=openwin();"/>
Page2.asp
<%
iFormID = Request.Form("FormID")
sSQL = "select * from Form where Form_id = " & iFormID
当我点击“打开页面 2”按钮时,它没有获取 FormID 的值。
如何修复它以从 Page1.asp 获取 FormID?
已更新:当我尝试使用此 JS 添加按钮时,它不会从 Page1.asp 获取变量
我在 page1.asp 上添加了这个:
function openwin()
{window.open("Page2.asp","mywindow","width=500,height=400"):}
<input type="hidden" name="FormID" value="<%= nFormID %>">
<input type="button" value="Open Page2" onclick=openwin();"/>
谢谢。
首先,确保您的元素位于 METHOD 为 POST
的表单块中
其次,你的元素
<input type="hidden" name="FormID" value="<% objRS("Form_id")%>
需要
<input type="hidden" name="FormID" value="<%= objRS("Form_id")%>" />
<%= 是 shorthand 对于 Response.Write
所以 page1 看起来像:
<form name="myForm" method="post" action="page2.asp">
<input type="hidden" name="FormID" value="<%= objRS("Form_id")%>" />
...
<input type="hidden" name="FormID" value="<%= nFormID %>">
<input type="submit" value="Open Page2" />
</form>
由于您似乎在尝试打开弹出窗口 window,因此我添加了第二个答案,因为您实际上并未发布任何数据。如果要使用弹出窗口,最简单的方法是将数据放在查询字符串中,如下所示:
function openwin()
{window.open("Page2.asp?formID=" + document.frmReport.FormID.value, "mywindow","width=500,height=400"):}
现在,我注意到您正在使用循环生成 formID 并为每个字段使用相同的名称。所以你需要遍历一组字段,获取每个值,并将其作为查询字符串中的一个字符串发送:
function openwin() {
var ids = '';
for( var index = 0; index < document.frmReport.FormID.length; index++ ) {
if( ids == '' )
ids += document.frmReport.FormID[ index ].value;
else
ids += ',' + document.frmReport.FormID[ index ].value;
}
window.open("Page2.asp?FormIDs=" + ids,"mywindow","width=500,height=400");
}
在 Page2.asp,你会做:
iFormIDs = Request.QueryString("FormIDs")
sSQL = "select * from Form where Form_id in ( " & iFormIDs & " ) "
您会注意到我将 sql 更改为使用 IN 子句,这样您就可以获得一组给定 formID 的所有记录,即使它只是一个。这显然没有考虑任何安全预防措施来防止 sql 注入,但这应该让你开始。
我试图从一个隐藏的输入文本框获取一个值到另一个页面,但它不起作用。如何将变量从隐藏的输入框传递到另一个页面?
Page1.asp
<input type="hidden" name="FormID" value="<% objRS("Form_id")%>
...
<input type="hidden" name="FormID" value="<%= nFormID %>">
<input type="button" value="Open Page2" onclick=openwin();"/>
Page2.asp
<%
iFormID = Request.Form("FormID")
sSQL = "select * from Form where Form_id = " & iFormID
当我点击“打开页面 2”按钮时,它没有获取 FormID 的值。 如何修复它以从 Page1.asp 获取 FormID?
已更新:当我尝试使用此 JS 添加按钮时,它不会从 Page1.asp 获取变量 我在 page1.asp 上添加了这个:
function openwin()
{window.open("Page2.asp","mywindow","width=500,height=400"):}
<input type="hidden" name="FormID" value="<%= nFormID %>">
<input type="button" value="Open Page2" onclick=openwin();"/>
谢谢。
首先,确保您的元素位于 METHOD 为 POST
的表单块中其次,你的元素
<input type="hidden" name="FormID" value="<% objRS("Form_id")%>
需要
<input type="hidden" name="FormID" value="<%= objRS("Form_id")%>" />
<%= 是 shorthand 对于 Response.Write
所以 page1 看起来像:
<form name="myForm" method="post" action="page2.asp">
<input type="hidden" name="FormID" value="<%= objRS("Form_id")%>" />
...
<input type="hidden" name="FormID" value="<%= nFormID %>">
<input type="submit" value="Open Page2" />
</form>
由于您似乎在尝试打开弹出窗口 window,因此我添加了第二个答案,因为您实际上并未发布任何数据。如果要使用弹出窗口,最简单的方法是将数据放在查询字符串中,如下所示:
function openwin()
{window.open("Page2.asp?formID=" + document.frmReport.FormID.value, "mywindow","width=500,height=400"):}
现在,我注意到您正在使用循环生成 formID 并为每个字段使用相同的名称。所以你需要遍历一组字段,获取每个值,并将其作为查询字符串中的一个字符串发送:
function openwin() {
var ids = '';
for( var index = 0; index < document.frmReport.FormID.length; index++ ) {
if( ids == '' )
ids += document.frmReport.FormID[ index ].value;
else
ids += ',' + document.frmReport.FormID[ index ].value;
}
window.open("Page2.asp?FormIDs=" + ids,"mywindow","width=500,height=400");
}
在 Page2.asp,你会做:
iFormIDs = Request.QueryString("FormIDs")
sSQL = "select * from Form where Form_id in ( " & iFormIDs & " ) "
您会注意到我将 sql 更改为使用 IN 子句,这样您就可以获得一组给定 formID 的所有记录,即使它只是一个。这显然没有考虑任何安全预防措施来防止 sql 注入,但这应该让你开始。