ASP 数组到 JavaScript 数组
ASP array to JavaScript array
这是我的问题:
我有一个一维数组,它是同一 .asp 中某些服务器端代码的结果。我想获取这个数组并将其中的字符串传输到 javascript 数组,这样我就可以使用 table 中的值来显示。
这是我试过的代码:
<script language="javascript">
var jsArray = [];
var n = <%=r%>;
for (n = 0; n < 4; n++){
jsArray[n] = '<%=tulemused(n)%>'; //this isn't working for some reason
}
</script>
我个人认为错误是由n
变量造成的。当我写在段落中时它显示正确,但在上面标记的行中使用时它不起作用。我也考虑过 for 循环可能是问题所在。
我做错了什么?
那不行,因为 asp 代码将在 javascript 之前 执行,所以没有办法通过 n
in。如果你真的需要 asp 为你做一些繁重的工作,你可以进行 ajax 调用或搭载预先建立的套接字连接。
您的"<% ="-like 代码将在页面呈现时执行。这意味着,按照它的编写方式,该代码将在呈现页面时执行一次,尝试访问数组的第 n 个元素。但是此时变量n不在访问范围内。
因此,如果您希望使用此类代码,则还需要在嵌入式代码中包含迭代。
一个更简单的解决方法是将字符串列表(您希望传递的)存储为单个连接字符串,由已知定界符分隔并访问 Javascript 中的连接字符串并在 JS 中拆分它.
也就是说,如果字符串变量 tulemused_concatenated
包含由分隔符“,”分隔的串联字符串,则以下脚本应该有效。
<script language="javascript">
var jsArray = [];
var n = <%=r%>;
var concatenated_string = '<%=tulemused_concatenated%>'; //this isn't working for some reason
var jsArray[n] = concatenated_string.split(',');
</script>
我这对你有用
<script language="javascript">
var jsArray = [];
<%
Dim n
n=o
%>;
for (n = 0; n < 4; n++){
jsArray[n] = '<%=tulemused(n)%>'; //this isn't working for some reason
<%n++%>
}
我知道这个问题已经得到解答,但也许更简单的表述就是...
var jsArray = <%= "[" & Join(tulemused, ",") & "]" %>;
如果您使用的是字符串,那么显然要将语音标记放入,就像这样...
var jsArray = <%= "['" & Join(tulemused, "','") & "']" %>;
这将避免在不必要时使用循环的尴尬情况。
注意
请注意,我之前有一点错字,在 Join
语句中包含了方括号。这是不正确的,应该优先使用current
服务器端asp代码首先运行。不与客户端浏览器共享数据。您可以将 asp 代码的结果保存为会话变量,然后稍后在 Javascript 中阅读它。
这是我的问题:
我有一个一维数组,它是同一 .asp 中某些服务器端代码的结果。我想获取这个数组并将其中的字符串传输到 javascript 数组,这样我就可以使用 table 中的值来显示。
这是我试过的代码:
<script language="javascript">
var jsArray = [];
var n = <%=r%>;
for (n = 0; n < 4; n++){
jsArray[n] = '<%=tulemused(n)%>'; //this isn't working for some reason
}
</script>
我个人认为错误是由n
变量造成的。当我写在段落中时它显示正确,但在上面标记的行中使用时它不起作用。我也考虑过 for 循环可能是问题所在。
我做错了什么?
那不行,因为 asp 代码将在 javascript 之前 执行,所以没有办法通过 n
in。如果你真的需要 asp 为你做一些繁重的工作,你可以进行 ajax 调用或搭载预先建立的套接字连接。
您的"<% ="-like 代码将在页面呈现时执行。这意味着,按照它的编写方式,该代码将在呈现页面时执行一次,尝试访问数组的第 n 个元素。但是此时变量n不在访问范围内。
因此,如果您希望使用此类代码,则还需要在嵌入式代码中包含迭代。
一个更简单的解决方法是将字符串列表(您希望传递的)存储为单个连接字符串,由已知定界符分隔并访问 Javascript 中的连接字符串并在 JS 中拆分它.
也就是说,如果字符串变量 tulemused_concatenated
包含由分隔符“,”分隔的串联字符串,则以下脚本应该有效。
<script language="javascript">
var jsArray = [];
var n = <%=r%>;
var concatenated_string = '<%=tulemused_concatenated%>'; //this isn't working for some reason
var jsArray[n] = concatenated_string.split(',');
</script>
我这对你有用
<script language="javascript">
var jsArray = [];
<%
Dim n
n=o
%>;
for (n = 0; n < 4; n++){
jsArray[n] = '<%=tulemused(n)%>'; //this isn't working for some reason
<%n++%>
}
我知道这个问题已经得到解答,但也许更简单的表述就是...
var jsArray = <%= "[" & Join(tulemused, ",") & "]" %>;
如果您使用的是字符串,那么显然要将语音标记放入,就像这样...
var jsArray = <%= "['" & Join(tulemused, "','") & "']" %>;
这将避免在不必要时使用循环的尴尬情况。
注意
请注意,我之前有一点错字,在 Join
语句中包含了方括号。这是不正确的,应该优先使用current
服务器端asp代码首先运行。不与客户端浏览器共享数据。您可以将 asp 代码的结果保存为会话变量,然后稍后在 Javascript 中阅读它。