asp经典脚本块中使用的Javascript变量
有人请帮忙。我想在脚本块上使用“requestID”javascript变量,并将其用于sql查询。但当我这么做的时候,它就不起作用了asp经典脚本块中使用的Javascript变量,javascript,asp-classic,Javascript,Asp Classic,有人请帮忙。我想在脚本块上使用“requestID”javascript变量,并将其用于sql查询。但当我这么做的时候,它就不起作用了 requestID= aReqId[iSelReq]; <% Dim sqlQuery Dim sqlQuery2 Dim sRecords Dim sRecords2 Dim iVersion1 Dim iFieldSeqId2 Dim vValue Dim iNumofReqTyp
requestID= aReqId[iSelReq];
<%
Dim sqlQuery
Dim sqlQuery2
Dim sRecords
Dim sRecords2
Dim iVersion1
Dim iFieldSeqId2
Dim vValue
Dim iNumofReqTypes
Dim iLoop
for iLoop=0 to iNumofReqTypes
sqlQuery = "SELECT iVersion, iFieldSeqId FROM tblUsrAcntFieldsDtlMst, tblReqTypeMst WHERE tblReqTypeMst.ireqTypeID = tblUsrAcntFieldsDtlMst.iSysid and iSysID = '509' and iversion = (select max(iVersion) from tblUsrAcntFieldsDtlMst where iSysID = '509') and cReqDisable = 'N' order by iFieldSeqId,ixCoordinate, iYCoordinate"
sRecords = getRecords(sqlQuery,bResult)
if bResult then
iVersion1 = sRecords(0,iLoop)
iFieldSeqId2 = sRecords(1,iLoop)
end if
sqlQuery2 = "select vValues from tblNewUsrAcntReqDtlTxn where iReqID = " & requestID &" and iSysID = " & SysID &" and iVersion = " & iVersion & " and iFieldSeqID = " & iFieldSeqId & ""
bResult = false
sRecords2 = getRecords(sqlQuery2,bResult)
if bResult then
vValue = sRecords2(0,0)
end if
next
%>
requestID=aReqId[iSelReq];
我认为您缺少一些基本的东西。我猜这是.asp页面的一部分
Javascript是客户端语言,这意味着Javascript代码由加载页面的浏览器解析和执行。VB部分是一种服务器端语言,因此由服务器执行。客户机和服务器是两个不同的世界。您不能在服务器端代码中直接使用requestID
变量,因为它只在客户端部分已知
因此,如果您想知道该变量的值,必须首先将其值发送到服务器。有几种方法可以做到这一点。。。通过AJAX发布表单。。。服务器端必须有一个侦听器才能接收该值并将其存储在当前会话中。然后可以在VB代码中使用它。不能在服务器端代码中使用客户端变量。但是,您可以在客户端代码中使用服务器端变量,因为服务器端代码首先执行 您可以在这里使用Javascript的AJAX调用经典ASP页面,使用变量数据获取数据库结果,然后将结果发布回页面 提示
在您的示例中,您可以去掉sqlQuery和sqlQuery2,只使用其中一个。与sRecords和sRecords相同,只需一个。不需要为每个任务填充两个变量。在这样一个小循环中不会有太大的区别,但保存代码和资源是一个很好的做法。定义“它不工作”。您希望它能起什么作用?它实际起什么作用?当我包含这些代码时,我的页面不会显示任何内容,但当我排除它或在sql查询中为“requestid”定义确切值时,它会起作用。您能告诉我们您的页面实际上是如何与服务器通信的吗?看起来你可能有一个可以发布帖子的表单?是这样吗?你能给我们看一下表格的HTML吗?以及如何以及何时设置JavaScript变量?