超难问题?请高手作答,在线等

qjqmoney 2003-10-21 09:01:38
代码如下:
<!--#include file="pans.asp"-->
<%
dim intRight(15)
sql1="select * from wz_qx where userid='" & session("userid") & "'"
set rs=server.createobject("adodb.recordset")
rs.open sql1,conn,1,3
for i=0 to rs.fields.count-3
intRight(i)=rs.fields(i+2)
next
%>
脚本代码:
<script language="VBScript">
<!--
function check(n)
ri=<%=intRight(n)%>
alert ("<%=intright(n)%>")
if ri=0 then
alert("您没有该版块的相应权限!请和管理员联系!")
check=false
else
check=true
end if
-->
end function
</Script>
为什么不能正确取出intRight(n)中的值?换句话说,只能随机取出intRight()数组中的一个值,而不是取出指定下标为n的数组中的值,为什么?n为传递过来的的值
...全文
35 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qjqmoney 2003-10-21
  • 打赏
  • 举报
回复
怎么没人回答啊,今天高手都不在吗?
BraveHorse 2003-10-21
  • 打赏
  • 举报
回复
问题在于<%=intright(n)%>在生成页面的时候已经编译,所以只能有一个值。
你所设想的是intright是一个数组,是在<scrip></script>里的数组。
<%%>里的代码是在服务器端编译的,你需要的是能在客户端调用的数组,因此要这样
<script language="vbscipt">
dim intRight()
<%
for i=0 to rs.fields.count-3
%>
intRight(<%=i%>)=<%=rs.fields(i+2)%>
%>
next
%>
</script>
这样就可以了
我没有在vbscript中初始化数组过,可能写法有点问题,你可以调一调,但是原理就是这样。要知道编译完了以后,你在脚本里是调用不了<%%>的,<%%>是在服务器端编译的,你要把编译的结果保存到<script></script>中。
希望能对你有点帮助。
WhiteRiver 2003-10-21
  • 打赏
  • 举报
回复
你的intRight最大只有15个元素。而从数据库中取出来的记录可能不止15条

而且你这里的n是客户端参数变量,真正调用check函数的语句在哪里?

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧