Vbscript 如何在ASP Classic中正确结束IF-ELSE语句?
我在搜索结果页面中添加了一个Vbscript 如何在ASP Classic中正确结束IF-ELSE语句?,vbscript,asp-classic,Vbscript,Asp Classic,我在搜索结果页面中添加了一个IF语句,这样,如果用户不提供通知id或通知日期,它就不会运行长时间运行的过程。它工作正常,只是没有在错误消息下方显示新的搜索框。如果出现了一个结束,那么它一定是在错误的位置或是什么地方,但我似乎无法找到它 “新搜索”html应该一直显示,而不是有条件地显示,但它似乎只显示它们是否进行了有效的搜索 <%If task = "searchNotices" Then%> <HTML> <HEAD> <TITLE>Notif
IF
语句,这样,如果用户不提供通知id或通知日期,它就不会运行长时间运行的过程。它工作正常,只是没有在错误消息下方显示新的搜索框。如果出现了一个结束,那么它一定是在错误的位置或是什么地方,但我似乎无法找到它
“新搜索”html应该一直显示,而不是有条件地显示,但它似乎只显示它们是否进行了有效的搜索
<%If task = "searchNotices" Then%>
<HTML>
<HEAD>
<TITLE>Notification System</TITLE>
<%Response.Write(NoEncode(GetStyleSheet("main")))%>
<script LANGUAGE="JavaScript">
<!--
function popUpWin(thePage,theWidth,theHeight,theTop,theLeft,theName) {
var features ="status=no,scrollbars=yes,resizable=yes,width=" + theWidth + ",height=" + theHeight + ",top=" + theTop + ",left=" + theLeft;
var openit = window.open(thePage, theName, features);
return;
}
-->
</script>
</HEAD>
<BODY>
<% <!-- begin what I added:-->
dim errorNeedsIdOrDate
errorNeedsIdOrDate = "<STRONG>Error: must input either a notice date or notice id.</STRONG><BR>"
IF isNull(noticedate) and isNull(noticeid) Then
Response.Write errorNeedsIdOrDate
Else
<!-- end what I added-->
Set rs = Obj.GetNoticeList (reterror, CInt(gSiteID), CLng(NoticeOwnerID), 9,cint(getPrint),cint(getFax),cint(getEmail),cint(getsuspend),noticedate, noticeid, null)
if err <> 0 then LogError true, "notice_list.asp", "Call to NoticeData.GetNoticeList failed.", Err
If retError <> "" Then
LogErrorMessage EVENT_ASP_EXCEPTION, true, "notice_list.asp", "Call to NoticeData.GetNoticeList failed.", retError
Else
%>
<STRONG>Notice Search Results</STRONG><BR>
<%if not rs.EOF then%>
<TABLE border=0 cellspacing=0 cellpadding=2>
<TR class="DataHeaderRow">
<TD BGCOLOR="CCCCCC" NOWRAP><font size="1"><STRONG>Send Now?</STRONG></TD>
<TD BGCOLOR="CCCCCC" NOWRAP><font size="1">NoticeID</TD>
<TD BGCOLOR="CCCCCC" NOWRAP><font size="1">Notice Sent</TD>
<TD BGCOLOR="CCCCCC" NOWRAP><font size="1">NoticeType</TD>
<TD BGCOLOR="CCCCCC" NOWRAP><font size="1">HowToSend</TD>
<TD BGCOLOR="CCCCCC" NOWRAP><font size="1">Status</TD>
<TD BGCOLOR="CCCCCC" NOWRAP><font size="1">AccountNumber</TD>
<TD BGCOLOR="CCCCCC" NOWRAP><font size="1">Send To</TD>
<TD BGCOLOR="CCCCCC" NOWRAP><font size="1">Insured</TD>
<TD BGCOLOR="CCCCCC" NOWRAP><font size="1">Policy(s)</TD>
<form action="notice_resend.asp" method="get" id=form1 name=form1>
<input type="hidden" name="task" value="passID">
<input type="hidden" name="NoticeOwnerID" value="<%=EncodeHTML(NoticeOwnerID)%>">
</TR>
<%
Do until rs.EOF
'HowToSend,NoticeType,DueDate,CancelDate,DaysPastDue,AmountDue,LateCharge,
'TotalDue,PolicyNumbers,AccountNumber,NoticeID,insuredname,agentname,insconame
if (not IsNull(rs("DateSent"))) then
if (rs("SendStatus") > 1) then
Select Case rs("HowToSend")
Case 1
sMediaKind = "print"
Case 2
sMediaKind = "fax"
Case 3
sMediaKind = "email"
Case else
sMediaKind = ""
End Select
end if
end if
%>
<TR>
<TD ALIGN="CENTER">
<% if (rs("HowToSend") = NOTICE_SEND_NOSEND) then %>
<% else %>
<INPUT TYPE="CHECKBOX" NAME="IDList" VALUE="<%=EncodeHTML(rs("NoticeID"))%>">
<% end if %>
</TD>
<TD>
<% if ((CInt(gUserAccessLevel) > CInt(ACCESS_USER)) and rs("SendStatus")=0) then %>
<a href="javascript:popUpWin('ModifyNotice.aspx?noticeid=<%=EncodeURL(rs("id"))%>&refresh=no',500,300,350,150,'modifynotice')">
<% end if %>
<font size="1"><%=EncodeHTML(rs("id"))%>
<% if ((CInt(gUserAccessLevel) > CInt(ACCESS_USER)) and rs("SendStatus")=0) then %>
</a>
<% end if %>
</TD>
<TD>
<font size="1">
<% If (sMediaKind <> "") Then %>
<a href="javascript:popUpWin('ViewNoticeWindow.asp?noticeid=<%=EncodeURL(rs("NoticeID"))%>&kind=<%=EncodeURL(sMediaKind)%>',800,320,200,50,'displaynotice')">
<% End If %>
<%=EncodeHTML(rs("DateSent"))%>
<% If (sMediaKind <> "") Then %>
</a>
<% End If %>
</font>
</TD>
<TD><font size="1"><%=EncodeHTML(rs("Notice_name"))%></TD>
<TD><font size="1">
<%Select Case rs("HowToSend")%>
<%Case 1%>
Print
<%Case 2%>
Fax
<%Case 3%>
Email
<%Case -1%>
Suspended
<%End Select%>
</TD>
<TD nowrap><font size="1">
<%Select Case rs("SendStatus")%>
<%Case 0%>
Needs Sending
<%Case 1%>
Not Yet Confirmed
<%Case 2%>
Confirmed Sent
<%Case 3%>
Cancelled on resend
<%End Select%>
</TD>
<TD><font size="1"><%=EncodeHTML(rs("AccountNumber"))%> </TD>
<TD><font size="1">
<%=NoEncode(FormatSendTo(rs))%>
</TD>
<TD><font size="1"><%=EncodeHTML(rs("insuredname"))%> </TD>
<TD NOWRAP><font size="1"><%=EncodeHTML(rs("PolicyNumbers"))%> </TD>
</TR>
<%rs.MoveNext
Loop
%>
<TR>
<TD COLSPAN="15"><INPUT TYPE="submit" CLASS="MainFormBtn" VALUE="Mark For Resending"></TD>
</form>
</TR>
</TABLE>
<%else%>
No records were found.
<%end if
End IF
%>
<HR SIZE="1">
<TABLE WIDTH=410 BORDER=0 CELLPADDING=1 CELLSPACING=2>
<TR>
<TD colspan="2">New Search</TD>
</TR>
<TR>
<form action="notice_list.asp" method="post" name="searchNotice">
<input type=hidden name="task" value="searchNotices">
<TD BGCOLOR="CCCCCC"><STRONG>Date notice was last sent</STRONG> mm/dd/yyyy</TD>
<TD><INPUT TYPE="TEXT" SIZE="10" MAXLENGTH="10" name="noticedate"></TD>
</TR>
<TR>
<TD BGCOLOR="CCCCCC"><STRONG>Notice ID</STRONG></TD>
<TD><INPUT TYPE="TEXT" SIZE="4" MAXLENGTH="10" name="noticeid"></TD>
</TR>
<TR>
<TD BGCOLOR="CCCCCC"><STRONG>How they are sent</STRONG></TD>
<TD>
Print<INPUT TYPE="CHECKBOX" <%If getprint="1" Then%>CHECKED<%End If%> NAME="getprint" value="1"> Fax<INPUT TYPE="CHECKBOX" <%If getfax="1" Then%>CHECKED<%End If%> name="getfax" value="1"> Email<INPUT TYPE="CHECKBOX" name="getemail" value="1" <%If getemail="1" Then%>CHECKED<%End If%>>
Suspended<INPUT TYPE="CHECKBOX" <%If getsuspend="1" Then%>CHECKED<%End If%> NAME="getsuspend" value="1">
</TD>
</TR>
<TR>
<!--
<TD COLSPAN="2" ALIGN=RIGHT><INPUT STYLE="HEIGHT: 27px; WIDTH: 160px"
type="submit" CLASS="MainFormBtn" value="Search For Notices" id="Search" name="SearchNotices">
-->
<TD> </TD>
<TD>
<INPUT STYLE="HEIGHT: 27px; WIDTH: 160px" type="submit" CLASS="MainFormBtn" value="Search For Notices" id="Search" name="SearchNotices">
</TD>
</form>
</TR>
</TABLE>
<%
End If
%>
通知系统
设置rs=Obj.GetNoticeList(reterror、CInt(gSiteID)、CLng(NoticeOwnerID)、9、CInt(getPrint)、CInt(getFax)、CInt(getEmail)、CInt(getsuspend)、noticedate、noticeid、null)
如果错误为0,则LogError为true,“notice_list.asp”,“调用NoticeData.GetNoticeList失败”,错误
如果返回错误“”,则
LogErrorMessage EVENT\u ASP\u EXCEPTION,true,“notice\u list.ASP”,“调用NoticeData.GetNoticeList失败”,retError
其他的
%>
注意搜索结果
立即发送?
通知
发出通知
注意事项
如何结束
地位
帐号
寄往
确保
政策
1) 然后
选择案例rs(“HowToSend”)
案例1
sMediaKind=“打印”
案例2
sMediaKind=“传真”
案例3
sMediaKind=“电子邮件”
其他情况
sMediaKind=“”
结束选择
如果结束
如果结束
%>
CInt(访问用户)和rs(“发送状态”)=0)然后%>
印刷品
传真
电子邮件
暂停的
需要发送
尚未确认
确认发送
重新发送时取消
没有发现任何记录。
新搜索
上次发送通知的日期mm/dd/yyyy
通知ID
它们是如何发送的
打印传真电子邮件
暂停的
您的问题有点不清楚,我不明白这个脚本的目的是什么。
无论如何,在上面的脚本中,您错过了在第148行结束的If语句:
您有3个主要的If语句:
IF isNull(noticedate) and isNull(noticeid) Then '1st if
Response.Write errorNeedsIdOrDate
Else
if err <> 0 then LogError true, "notice_list.asp", "Call to NoticeData.GetNoticeList failed.", Err 'an inline statement
If retError <> "" Then '2nd if
LogErrorMessage EVENT_ASP_EXCEPTION, true, "notice_list.asp", "Call to NoticeData.GetNoticeList failed.", retError
Else
%>
<STRONG>Notice Search Results</STRONG><BR>
<%if not rs.EOF then 'this is the 3rd if%>
如果isNull(noticedate)和isNull(noticeid),则“第一个IF”
响应。写入errorNeedsIdOrDate
其他的
如果错误为0,则LogError为true,“notice_list.asp”,“调用NoticeData.GetNoticeList失败”,err'为内联语句
如果返回错误“”,则为“第二个如果”
LogErrorMessage EVENT\u ASP\u EXCEPTION,true,“notice\u list.ASP”,“调用NoticeData.GetNoticeList失败”,retError
其他的
%>
注意搜索结果
如果缺少End If
它将无法工作,因为VBScript引擎将生成预期End
错误。是的,我相信这只是End If位于错误的位置。我希望新的搜索标记总是被输出,并且当第一个IF语句(带有两个ifNull()检查)是truthy时,它似乎被排除在外。OP说“它工作得很好”,因此它好像缺少一个End IF
就会出错,因此任何缺少的End IF
都不是OP的实际问题。我怀疑用正确的形式回答这个问题有多有用。
<%rs.MoveNext
Loop
%>
<TR>
<TD COLSPAN="15"><INPUT TYPE="submit" CLASS="MainFormBtn" VALUE="Mark For Resending"></TD>
</form>
</TR>
</TABLE>
<%else%>
No records were found.
<%end if
End IF
%>