在经典asp中传递Query字符串参数时出错

时间:2012-06-29 11:24:57

标签: javascript asp.net asp-classic

我在使用经典的asp并且不太熟悉语法 我的父页面上有这个JavaScript

function redirect(ID)
{
 document.frmMain.action = "manual.asp?ID=" + ID;
 alert('manual.asp?ID='+ID)
 document.frmMain.submit();
}

但是当我在新的asp页面上捕获它时,相同的ID会变空。

<%   
SQLStr = "SELECT * FROM tblUsers WHERE ID='" & Request.QueryString("ID") & "'"
set rst = DataConn.Execute(SQLStr)
Denied = 1
while not rst.eof
    Denied = 0
    rst.movenext
wend
rst.close
if Denied = 1 then  
%>

有人可以帮助我。

1 个答案:

答案 0 :(得分:1)

如果您用于重定向的表单为空,则最好使用window.location执行此任务

function redirect(id) {
    window.location.href = "manual.asp?id=" + id;
}  

如果表单不为空,则必须为id添加一个字段,并使用参数填充此字段。

<form name="frmMain" action="manual.asp" method="get">
    <input type="text" name="paramter1" value="1" />
    <!-- hidden value for the id -->
    <input type="hidden" name="id" value="" />
</form>


function redirect(id) {
    var form = document.frmMain;
    form.id.value = id;
    form.submit();
}

但是您仍然需要检查可能破坏数据库的任何非法字符的id参数read me