vbscript中如何灵活的使用Asp定义和赋值的数组!

mcgill 2005-05-18 09:15:13
问题如上,代码如下:
<%
dim CL(255,255)
......
......
'省略号部分为CL数组的赋值过程
%>

<SCRIPT LANGUAGE="VBScript">
<!--
Sub pinpai_OnChange()
m = -1
MsgBox "<%=CL(0,0)%>"
For i = 0 To UBound(CL,1)
If CL(i,0) = pingpai.Text Then
m = i
End If
Next
chexing.AddItem ("请指定车型")
For i = 1 To UBound(CL, 2)
chexing.AddItem (CL(m, i))
Next

End Sub
-->
</script>

测试时,msgbox可以显示CL(0,0)的内容,但是后面的代码不知该如何实现asp的数组被vbscript使用!
...全文
223 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
低调的小青蛙 2005-05-18
  • 打赏
  • 举报
回复
继续,

因此,如果你想在 <script> 中使用 <%%> 中的变量,你需要进行一下付值,

<%
Dim CL(100)
...
...
%>
<script language=VBScript>
Dim CL(100) ' 这个 CL 和前一个是不一样的,这个位于客户端

<% for i=1 to 100 %>
CL(<%=i%>) = <%=CL(i)%>
<% next %>
</script>

客户端然后才可以使用。

当然,在网页脚本中对 CL 的修改不会影响到 ASP 中的 <%%> 中的那个 CL 那里去,如果客户端有什么数据需要提交,那么你需要采用 POST,或者 GET 的方法才可以。
mcgill 2005-05-18
  • 打赏
  • 举报
回复
这种概念性的问题我清楚,只是我不知道如何灵活的在客户端使用服务器端生成的数组!
低调的小青蛙 2005-05-18
  • 打赏
  • 举报
回复
问题在于这里:

<SCRIPT LANGUAGE="VBScript">

表示“客户端脚本”,而“<%%>”是“服务器端脚本”。你需要区分这两者的概念:

客户端脚本:是由浏览器来执行的。
<%%>:是服务器来执行的。

ASP 在服务器段执行的时候,“客户端脚本”对于 Web 服务器来说,跟普通文本没有区别。而 <%%> 之内的内容对于浏览器来说是不知道的。因此你的变量 CL 是服务器脚本中的变量,对于浏览器来说,他不知道存在这个变量,浏览器只能看到 <%%> 的内容执行之后的结果。
mcgill 2005-05-18
  • 打赏
  • 举报
回复
再顶,fantiny(虽然我是菜鸟,不过我是乐于助人的菜鸟)快来帮帮我!
binny0532 2005-05-18
  • 打赏
  • 举报
回复
帮订
mcgill 2005-05-18
  • 打赏
  • 举报
回复
不懂你的意思,能不能帮我改改代码呢,对于一个CL数组,我用什么方法进行变量替换呢?
fantiny 2005-05-18
  • 打赏
  • 举报
回复
UBound(CL,1)部可以先用变量替换,然后再给script用么。跟我上面说的方式是一样的。这么简单的问题,应该自己多想想。
mcgill 2005-05-18
  • 打赏
  • 举报
回复
没有人知道吗,这个很难吗,老大们!
mcgill 2005-05-18
  • 打赏
  • 举报
回复
顶一下,不顶沉了!
mcgill 2005-05-18
  • 打赏
  • 举报
回复
问题不在于我只使用其中的一个成员,而是我要使用整个CL(255,255)里面的成员,比如说我现在在vbscript中要使用UBound(CL,1),很显然,程序要抱错,因为他不清楚CL是什么,所以,我应该怎么办才能让系统知道CL是一个已经赋值了的二维数组呢?
fantiny 2005-05-18
  • 打赏
  • 举报
回复
先定义一个变量等于<%=CL(0,0)%>,然后用这边变量去判断就可以了。
低调的小青蛙 2005-05-18
  • 打赏
  • 举报
回复
仅供参考,如果正确,那就请给分:

<%
Dim CL
CL = Array( _
Array("大众", "2000", "3000"), _
Array("奇瑞", "AA", "BB") _
)
%>

<SCRIPT LANGUAGE=vbscript>
<!--
Dim CL
CL = Array( _
Array("<%=CL(0)(0)%>"<% for j=1 to ubound(CL(0)) %>, "<%=CL(0)(j)%>"<% next %>)<%
for i = 1 to ubound(CL) %>, _
Array("<%=CL(i)(0)%>"<% for j=1 to ubound(CL(i)) %>, "<%=CL(i)(j)%>"<% next %>)<%
next %> _
)

-->
</SCRIPT>
<SCRIPT ID=clientEventHandlersVBS LANGUAGE=vbscript>
<!--

Sub select1_onchange
for i=0 to ubound(CL)
if FORM1.select1.options(FORM1.select1.selectedIndex).value = CL(i)(0) Then
FORM1.select2.outerHTML = "<SELECT id=select2 name=select2></SELECT>"
for j=1 to ubound(CL(i))
Dim o
Set o = document.createElement("OPTION")
o.Text = CL(i)(j)
FORM1.select2.add(o)
next
end if
next
End Sub

-->
</SCRIPT>

<FORM id=FORM1 name=FORM1 action="" method=post>
<SELECT id=select1 name=select1>
<%for i=0 to ubound(CL)%>
<OPTION value="<%=CL(i)(0)%>"><%=CL(i)(0)%></OPTION>
<%next%>
</SELECT><BR>

<SELECT id=select2 name=select2></SELECT></FORM>
mcgill 2005-05-18
  • 打赏
  • 举报
回复
<SCRIPT LANGUAGE="VBScript">
<!--
Dim CL(255,255)

<% for d=0 to 254 %>
CL(<%=d%>,0) = <%=CL(d,0)%>
<% for e=1 to 254 %>
CL(<%=d%>,<%=e%>) = <%=CL(d,e)%>
<% next
next %>

Sub pinpai_OnChange()
m = -1
MsgBox "C(0,0)"
For i = 0 To UBound(CL,1)
If CL(i,0) = pingpai.Text Then
m = i
End If
Next
chexing.AddItem ("请指定车型")
For i = 1 To UBound(CL, 2)
chexing.AddItem (CL(m, i))
Next

End Sub
-->
</script>

为什么程序根本不执行我的代码呢?

28,406

社区成员

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

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