Request.Form&Request.QueryString实现伪ajax的效果

Request.Form&Request.QueryString实现伪ajax的效果1、问题描述最近一直在搞公司老系统的需求开发,前端是asp,后端的vb。碰到了一个需求,是做一个”日志查询”功能,查询条件为:时间&操作人。原本我的设计思路是异步查询,通过ajax传参到后端再把后端查询结果返回过来,这样就可以既得到查询结果,也可以保留当前的查询条件。但实际操作起来碰到了困难。公司老系统这种前后端ajax交互的逻辑是:这种方式貌似只能ajax返回字符串,而我的查询结果是一个集合,我不知道在xxxAjax.asp的{…}中该怎么定义并接收一…

1、问题描述

最近一直在搞公司老系统的需求开发,前端是asp,后端的vb。碰到了一个需求,是做一个”日志查询”功能,查询条件为:时间&操作人。

Request.Form&Request.QueryString实现伪ajax的效果

 

原本我的设计思路是异步查询,通过ajax传参到后端再把后端查询结果返回过来,这样就可以既得到查询结果,也可以保留当前的查询条件。但实际操作起来碰到了困难。

公司老系统这种前后端ajax交互的逻辑是:

Request.Form&Request.QueryString实现伪ajax的效果

 Request.Form&Request.QueryString实现伪ajax的效果

 

这种方式貌似只能ajax返回字符串,而我的查询结果是一个集合,我不知道在xxxAjax.asp的{…}中该怎么定义并接收一个list。

因为用的技术语言比较老,网上也没找到相关的解决方法。

2、解决方法

后来我参考了其他相似功能的页面,没有用ajax,而是用了Request.QueryString。asp页面把查询条件封装成form传给自己,Request.QueryString其实就是获取url中传过来的值的,就像这些:

Request.Form&Request.QueryString实现伪ajax的效果

 Request.QueryString是获取get请求的,而另一种Request.Form是获取post请求的

具体可以参考:关于request.querystring()的理解_Better Thinker-CSDN博客_request.querystring用法

Request.QueryString.Count判断传过来的参数数量,如果数量>0则调用后端方法,否则不调用。这样就避免了刚打开该查询页面,参数都为null,导致的参数缺失错误!(因为asp的执行顺序是先执行<%…%>里面的代码。然后再去执行<head><body><script>里面的代码。这和jsp一样。所以如果不先做Request.QueryString.Count>0判断再调后端方法就会报参数缺失错误的)至于查询后保留查询条件就很简单了,因为本来参数就是自己传给自己的,所以直接Request接收就行了。

<%
Set bzHrHirePlan = CreateObject("bzHrHirePlan.wsc")
dateNow=aspCommon.FormatTime(Date,1)
if Request("BeginDate")<>"" and Request("EndDate")<>"" then
dBeginDate=Request("BeginDate")&""
dEndDate=Request("EndDate")&""
else
dBeginDate=dateNow
dEndDate=dateNow
end if
if Request("operatorTxt")<>"" then
sOperator=Request("operatorTxt")
else
sOperator=auCommon.LOGON_UID
end if
%>


...asp前端代码

<% If Request.QueryString.Count <> 0 Then
			Set rs1 = bzHrHirePlan.ListLog(null,dBeginDate,dEndDate,sOperator)
			If rs1.EOF Then
			%>
			<p>[没有符合条件的记录。]</p>
			<% Else %>
				<table class="table table-datalist">
					<tr>
						<th>序号</th>
						<th>职位编号</th>
						<th>操作人</th>
						<th>操作时间</th>
						<th>记录</th>
					</tr>
					<% i=0 
					Do While Not rs1.EOF 
					i=i + 1 
					idPlan=Right("00000"&rs1("EventKeyLink"),5)
					operator=rs1("EventHandler")
					operateTime=rs1("LogTime")
					record=rs1("EventDescription")
						
						%>
						<tr>
							<td>
								<%=i%>
							</td>
							<td>
								<%=idPlan%>
							</td>
							<td>
								<%=operator%>
							</td>
							<td>
								<%=operateTime%>
							</td>
							<td>
								<%=record%>
							</td>
						</tr>
						<% rs1.MoveNext 
						Loop %>
				</table>
				<% End If 
				rs1.Close 
				End If %>

3、参考资料

关于request.querystring()的理解_Better Thinker-CSDN博客_request.querystring用法icon-default.png?t=LA46https://blog.csdn.net/a6225301/article/details/8970595

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/35555.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注