ASP如何与JAVASCRIPT中的变量同步变化。

举个例子,我在ASP代码中定义了一个一维的数组StrAry(5),同时,我在Javascript代码定义另一个数组InAry[5];现在,我想要将StrAry(5)中的元... 举个例子,我在ASP代码中定义了一个一维的数组 StrAry(5),同时,我在Javascript代码定义另一个数组InAry[5];现在,我想要将StrAry(5)中的元素都存入InAry[5]中。我写了下面一段代码:

<script language="Javascript">
var InAry[5]=new Array();
for(i=0;i<5;i++){InAry[i]='<%=StrAry(i)%>';}
</script>

执行完以上代码以后,假设StrAry={1,2,3,4,5},那么,按道理来说,InAry={1,2,3,4,5}才对的,但是,事实却是InAry={1,1,1,1,1}!!!

我一开始就晕了。但仔细看多一次,才发现:for(i=0;i<5;i++){InAry[i]='<%=StrAry(i)%>';} 中有两个i,一个是for循环里面的i,另外一个是<%=StrAry(i)%>里面的i,它们的作用域不一样的,for循环里面的i++并不能使ASP代码里面的那个变量i同步改变。我想请教一下各位朋友,该怎么样做才能使得ASP的变量i随着for循环里面的i的值而改变,谢谢了。
嗯.听了你的讲解,我知道哪里出错了,不然我可能会一直想怎么同步它们吧.少走弯路了,谢谢了.
展开
 我来答
百度网友66a8d48e5
2010-05-11 · TA获得超过7687个赞
知道大有可为答主
回答量:3002
采纳率:12%
帮助的人:3892万
展开全部
呵呵,算你看清了,我第一眼看你的程序就根本不行的!你算是找到了原因的!解决办法非常简单,因为你是只知其一,不知其二,所以你想不起来如何解决的!

javascript是客户端代码,而asp则是服务端代码,也就是说服务器端代码运行完毕将javascript发送到客户端后,javascript在客户端上执行的.也就是说ASP的执行与javascript的执行根本不在一块.所以你可能看到很多动态表现页面,都是可以用ASP生成CSS文件或是生成外接的JS文件的.所以这里是你的理解错误或是对程序运行的机理不太了解!

<%
response.write "<script language='javascript'>"&vbcrlf
response.write "var InAry[5]=new Array();"&vbcrlf
for i = 0 to 4
response.write "Inary["&i&"] = "&StrAry(i)&";"&vbcrlf
response.write "</"&"script>"&vbcrlf
%>
这就是用ASP生成相应的JS代码,生成的代码被发送到了客户端的,然后才得经执行的.而你写的那种形式,显然只生成了一次的StrAry(i),因为找不到i变量,所以将i自动做0处理,于是你得到了程序是每一个赋值时都赋成了StrAry(i)的值.

所以你自己是不能说让服务器端的代码随客户端的代码运行而运行的,因为那时服务器端的所以代码已经执行完毕,对于离散型的网页来说,页面下载完毕后就不再与服务器有任何联系,除非使用AJAX再次进行请求.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式