Link to home
Start Free TrialLog in
Avatar of Jordan Johnson
Jordan Johnson

asked on

Calling Javascript Confirm from ASP Classic/VBScript

I am attempting to call a confirm popup from asp classic. Is there a way I can get this Javascript code to execute? 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%>

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of hielo
hielo
Flag of Wallis and Futuna image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
You can't use the confirm function on the server side, you would need to use it client side before submitting the form
so always split your presentation (confirmation) and processing logic (Update SQL statement) into different layers (pages) so you would have a clearer way to manage your scripts, and that will mitigate any potential risks of mess up your application.

the confirmation can be done either at client side or server side but they will have different approaches to do it.