不锈钢硬度hv:在asp中实现选择个数的设置

来源:百度文库 编辑:中科新闻网 时间:2024/04/28 11:39:08
我想做一个选课系统,在选课的时候要求能够设置选课的课程数,限定用户只能选择三项,如果多选则,返选课的主页面,下面是代码,请教高手指点,我的代码怎么不能运行呀
<% ‘从数据库调出要选择的课程,并在最后显示选择按钮。
Set rs = Server.CreateObject("ADODB.RecordSet")
sql="select * from kc"
rs.open sql,conn,1,1
session("kcbh")=rs("kcbh")
do while not rs.eof
%>
<tr align="center" valign="middle" class="td1" border="1">
<td width="100" height="20"><a title="<%=rs("kcsm")%>"><%=rs("kcname")%></a></td>
<td width="70" height="20"><%=rs("jsname")%></td>
<td width="70" height="20"><%=rs("ksnum")%></td>
<td width="120" height="20"><%=rs("sksj")%></td>
<td width="60" height="20"><%=rs("skrs")%></td>
<td width="120" height="20"><%=rs("skdd")%></td>
<td width="60" height="20" align="center" valign="middle">
<form name="caozuo" method="post" onSubmit="return sele()">
<input type="checkbox" name="checkbox" onSubmit="return sele()">
</form></td>
</tr>
<%
rs.movenext
loop
rs.close
%>
’选课课程数量限制函数
<%
function sele()
dim i
i=i+1
if i>3 then
response.write "你选择的课程超过了三门,请重新选择!"
else
response.redirect"selectkc.asp"
end if
end function
%>
‘显示选择是否累加变量
<%=i+0%>
请高手指点,为什么我的变量不会增加,没有增加的值返回呀!
谢谢了先
我的问题就是想先不通过数据的提交,先对数据验证,如果数据符合要求再提交,如果不符合要求就不提交,通过按钮的动作事件来完成,避免网页的速度问题,希望高手解决,可以不使用我的代码,通过其他方法也可以,利用script语句也可以。希望高手指点,小弟先谢谢各位大虾的关注。

function sele()
dim i
i=i+1
if i>3 then
response.write "你选择的课程超过了三门,请重新选择!"
else
response.redirect"selectkc.asp"
end if
end function
dim i 这个错啦,把定义变量的语句放在过程里,每次运行过程都重新定义变量,那变量怎么增加啊。拿出去吧,放到过程外面去。还有啊,给变量一个值嘛,你都没有给,那么初始值是什么啊?加个i=0 就可以了。

你这种写法是不可行的
因为在他读取到页面的时候asp语句已经经过执行成为HTML的了
建议你使用服务端/客户端同时检验的方法
服务端是要他提交表单后你做的判断,例如使用判断数组的方法
dim TheArr
TheArr=split(checkbox,",")
if ubound(TheArr)>2 then
response.rediract ("selectkc.asp")
response.end
end if

客户端用JS脚本(你就是这里用的asp)
<script>
var i =0;
function sele()
{i=i+1;
if (i==3){alert('你已经选择超过3门课程了');}
}

大致思路是这样

function sele()
dim i
i=i+1
if i>3 then
response.write "你选择的课程超过了三门,请重新选择!"
else
response.redirect"selectkc.asp"
end if
end function
变量放在session里,就可以累加了,不然你每运行一次都恢复一次!