读书人

asp action有关问题

发布时间: 2013-11-01 14:43:02 作者: rapoo

asp action问题
本帖最后由 u010191354 于 2013-07-30 16:57:58 编辑 功能要求:按提交按钮。可以随机从数据库中抽选5个人的名字。
情况:现在做出了随机抽选功能。但是按提交或者刷新网页。名单都会刷新。
修改要求:刚进入网页时,名单栏不要显示任何名字,点击“提交”按钮才显示随机抽选结果。如果刷新网页,内容不变。
个人思路是不是要用到FORM ACTION 但是这个我不大懂,所以来请求高人指点。
代码如下:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<% dim conn,rs
set conn = Server.CreateObject("ADODB.connection")
set rs = Server.CreateObject("Adodb.Recordset")
conn.connectionstring="Provider=Microsoft.Jet.oledb.4.0;Data Source="+server.MapPath("abc.mdb")+";"
conn.open
Randomize
sql="select top 5 * from stu order by rnd(-(id +" & rnd() & "))"
rs.open sql,conn,1,3

%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>

<TABLE width="60%" border="0" align="center" cellpadding="2" cellspacing="1">
<TR>
<TD width="92%" valign="top"><p>名单:
<%
for i=1 to 5
if not rs.eof then
%>
<%=rs("stuname")+"    "%>
<%
end if
rs.movenext
next
rs.close
set rs=nothing
%>
</p>
<p> </p></TD>

</TR>
<TR>
<TD colspan="2" align=right>
<INPUT type="button" onclick="window.location.reload()" value="提交">    
</TD>
</TR>
</TABLE>

</body>
</html>

[解决办法]
不要用window.location.reload()

可以用一个form表单把input括起来,然后action留空就可以了,会提交到本页面

input的type改为submit,并给一个name叫sub

然后在上面的ASP代码中加入判断
if (Request.Form["sub"] != null)
...执行代码

提交完之后按F5会弹窗询问是否要重复提交表单,如果不想要这个弹窗,那就要换种方式实现,比如提交到别的页面或者AJAX操作。
[解决办法]
是的,这是所有form表单提交都会遇到的。
这是浏览器特性,你如果想规避的话,可以用AJAX实现点击按钮加载数据,这是最直接的办法了。
[解决办法]

引用:
Quote: 引用:

是的,这是所有form表单提交都会遇到的。
这是浏览器特性,你如果想规避的话,可以用AJAX实现点击按钮加载数据,这是最直接的办法了。

现在是希望刷新页面 名单内容不要有变动。怎么改呢 我点了图中的重试,名单内容就刷新了。

这个需求form提交来做是比较麻烦的,建议你用AJAX。
“可以用AJAX实现点击按钮加载数据,这是最直接的办法了。”
[解决办法]
引用:
不要用window.location.reload()

可以用一个form表单把input括起来,然后action留空就可以了,会提交到本页面

input的type改为submit,并给一个name叫sub

然后在上面的ASP代码中加入判断
if (Request.Form["sub"] != null)
...执行代码

提交完之后按F5会弹窗询问是否要重复提交表单,如果不想要这个弹窗,那就要换种方式实现,比如提交到别的页面或者AJAX操作。



提交代码还可以这样写??
<input type="submit" value="提 交" name="sub">
if (Request.Form["sub"] != null)


我一般都是这样写的
<input type="submit" value="提 交" name="sub">
if request.form("sub") = "提 交" then

[解决办法]
引用:
Quote: 引用:

不要用window.location.reload()

可以用一个form表单把input括起来,然后action留空就可以了,会提交到本页面

input的type改为submit,并给一个name叫sub

然后在上面的ASP代码中加入判断
if (Request.Form["sub"] != null)
...执行代码

提交完之后按F5会弹窗询问是否要重复提交表单,如果不想要这个弹窗,那就要换种方式实现,比如提交到别的页面或者AJAX操作。



提交代码还可以这样写??
<input type="submit" value="提 交" name="sub">
if (Request.Form["sub"] != null)


我一般都是这样写的
<input type="submit" value="提 交" name="sub">
if request.form("sub") = "提 交" then

太久没写过VBScript了 就当伪代码看吧:)

读书人网 >ASP

热点推荐