简体   繁体   English

从ASP Classic / VBScript调用Javascript确认

[英]Calling Javascript Confirm from ASP Classic/VBScript

I am attempting to call a confirm popup from asp classic. 我试图从ASP Classic调用确认弹出窗口。 Is there a way I can get this Javascript code to execute? 有没有办法让我执行此Javascript代码? It is currently not being called/executed. 当前不被调用/执行。 I need a popup to appear allowing the user to confirm if they want to clear an assignment or not. 我需要显示一个弹出窗口,以允许用户确认他们是否要清除作业。 Thanks! 谢谢!

<%@ Language=VBScript %>
<!--#include file="content/securityheader.asp"-->
<!--#include file="connection.inc"-->
<!--#include file="connectionxref.inc"-->
<!--#include file="securityheader.asp"-->
<!--#include file="connectionSQL.inc"-->

<% 'SQL SECURITY CODE
    function dbencodeStr(str)
        thestr = trim(replace(str,"'","&#39;"))
        thestr = trim(replace(thestr,"""","&#34;"))
        thestr = trim(replace(thestr,"<","&lt;"))
        thestr = trim(replace(thestr,">","&gt;"))
        thestr = trim(replace(thestr,vbCRLF,"<BR>"))
        dbencodeStr = thestr
    end function
%>
<script language = "javascript"  runat="server">
function clearAssignment(assignmentID,relno,docrecid)
{
if (confirm("This is the last assignment for this relationship.")){
    window.location.assign("procclearassignmentprompt.asp?assignmentID="+assignmentID+"&relno="+relno+"&docrecid="+docrecid);
    }
}
</script>
<%
Server.ScriptTimeout=3600

'------------------------------
Function getName(str)
index = instr(str," ")
if index > 0 then
str = trim(mid(str,1,index))
end if
getName = str
End Function
'------------------------------

on error resume next

assignmentID = dbencodeStr(request.Querystring("assignmentID"))
docid = dbencodeStr(request.Querystring("docrecid"))
relno = dbencodeStr(request.Querystring("relno"))
thedate = now()

count = 1
'Check if this is the last assignment for relationship
strSQL = "select count(distinct reldocassignments.id) from reldocnotes inner join reldocassignments on reldocnotes.docid=reldocassignments.docid where relno = '"&relno&"' and reldocassignments.activeflag=1"
Set rs = objConnection.Execute(strSQL, ,adCmdText)
    arr = rs.GetRows()
    rows = UBound(arr,2)
    for i = 0 to rows       
        count = trim(arr(0,i))
    next
if count = 1 then
Response.Write "Calling =" & clearAssignment(assignmentID,relno,docrecid) & "."
else
    if docid <> "" Then
        ''''Close any open assignments for the document
        strSQL = "update RelDocAssignments set activeflag = 0, closedOn = getdate() where docid = '"&docid&"' and ID = '"&assignmentID&"';"
        Set rs = objConnection.Execute(strSQL, ,adCmdText)
    end if
Response.write(strSQL)


''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''

objConnection.close
set objConnection = nothing
objConnection2.close
set objConnection2 = nothing
objConnection3.close
set objConnection3 = nothing

Response.Redirect "relDetails.asp?relNo=" & relno
end if

%>
Count = <%=count%>

As others have implied, you need to have the confirm JavaScript client side, 正如其他人所暗示的,您需要具有确认的JavaScript客户端,

So 所以

  1. Remove the runat="server" for that JavaScript so it runs client side instead. 删除该JavaScript的runat="server" ,使其改为运行客户端。

  2. To call that function client side change 调用该功能的客户端更改

     Response.Write "Calling =" & clearAssignment(assignmentID,relno,docrecid) & "." 

    to

     Response.Write "<script language='javascript'>clearAssignment(" & assignmentID & "," & relno & "," & docrecid & ")</script>" 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM