【问题标题】:ASP array to JavaScript arrayASP 数组到 JavaScript 数组
【发布时间】:2015-11-21 10:24:38
【问题描述】:

这是我的问题:

我有一个一维数组,它是同一个 .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 循环可能是问题所在。

我做错了什么?

【问题讨论】:

  • JavaScript = 客户端,ASP = 服务器
  • 您是否尝试从客户端访问服务器端功能

标签: javascript arrays asp-classic


【解决方案1】:

您的“

因此,如果您希望使用此类代码,则需要在嵌入代码中也包含迭代。

一个更简单的解决方法是将字符串列表(您希望传递的)存储为单个连接字符串,由已知分隔符分隔并在 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】:

    那不行,因为asp代码会在 javascript之前执行,所以没有办法传入n。如果你真的需要asp来做一些为您完成繁重的工作,您可以进行 ajax 调用或搭载预先建立的套接字连接。

    【讨论】:

      【解决方案3】:

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

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

      如果你使用的是字符串,那么显然把语音标记放进去,就像这样......

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

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

      注意

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

      【讨论】:

        【解决方案4】:

        服务器端的 asp 代码首先运行。不与客户端浏览器共享数据。您可以将 asp 代码的结果保存为会话变量,然后稍后在 Javascript 中读取。

        【讨论】:

          【解决方案5】:

          我这对你有用

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

          【讨论】:

          • 有人不明白服务器端代码与客户端代码的概念。 n 只会是 0 然后 1 仅此而已,要循环增量,您需要一个服务器端编码循环。
          • @Lankymart:不——完整代码失败。请注意,n=(小写)o,而不是 0(零)和 &lt;%n++%&gt; 仅适用于 JScript。
          猜你喜欢
          • 2012-01-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-04-03
          • 2015-12-05
          • 2017-06-28
          相关资源
          最近更新 更多