ASP数组到JavaScript数组

时间:2015-11-21 10:24:39

标签: javascript arrays asp-classic

这是我的问题:

我有一个一维数组,它是同一个.asp中某些服务器端代码的结果。我想获取此数组并将其中的字符串传输到javascript数组,因此我可以使用表中的值进行显示。

这是我尝试过的代码:

<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循环可能是问题所在。

我做错了什么?

4 个答案:

答案 0 :(得分:3)

那不会起作用,因为asp代码将在 javascript之前执行,所以没有办法传递n。如果你真的需要asp为你做一些繁重的工作,你可以打一个ajax电话或者捎带预先建立的套接字连接。

答案 1 :(得分:3)

您的“&lt;%=” - 代码将在呈现页面时执行。这意味着,它的编写方式,代码将在呈现页面时执行一次,尝试访问数组的第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>

答案 2 :(得分:2)

我意识到这个问题已经得到了解答,但也许更简单的再现就是......

var jsArray = <%= "[" & Join(tulemused, ",") & "]" %>;

如果您正在使用字符串,那么显然会将语音标记放入,就像这样......

var jsArray = <%= "['" & Join(tulemused, "','") & "']" %>;

这将避免在没有必要时使用循环的任何尴尬。

注意

请注意我之前使用此Join语句中的方括号包含了一个小错字。这是不正确的,应该优先使用电流。

答案 3 :(得分:-3)

我这必须为你工作

<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++%>
}