数组只有用分隔符分开变成字符串存放在文本框中,然后用JavaScript的split函数还原成数组访问.

解决方案 »

  1.   

    你就在服务器端把s2Type输出转换成js的数组就可以了嘛
      

  2.   

    先在jsp 中将session数组中的值赋给一个变量,中间用,号隔开然后在js中将这个jsp中的变量赋给 js中的一个变量, 利用split  函数将变量还原成数组,之后你想干吗就干吗了!
      

  3.   

    同意楼上,先将JAVA的数组变量转到JS变量中.第二维的变量用分隔符拼起来.
    var s2Type = new Array(<%=n2len%>);
    <%for(int i = 0;i < n2len;i++){%>
        s2Type[<%=i%>] = <%=s2Type[i]%>;
    <%}%>
      

  4.   

    不好意思,上面方法有错误.
    var s2Type = new Array(<%=n2len%>);
    <%for(int i = 0;i < n2len;i++){%>
        s2Type[<%=i%>] = <%=s2Type[i][0]%> + "分隔符" + <%=s2Type[i][1]%>;
    <%}%>
      

  5.   

    你可能不清楚服务器和客户端的概念 , asp程序,也就是<%,%>之间内容是在服务器端编译执行的 , 一旦执行完毕以后就成了一个静态的网页, 然后把这个静态的网页传到了客户端, 从此,服务器端就与客户端没有任何联系 。 。 。 在客户端响应用户操作的是javascript 。
    从上面可以知道 , asp是无法直接用javascript的值的 。 。 。
    所以你用s2dldm = "<%=s2Type[i][0]%>"; 时,里面的i是javascript里的变量,即在客户端才运行的变量,你在服务器端当然不能引用 。 。 。 最好的办法是利用javascript数组临时存放asp的数组,然后在客户端调用的时候,直接调用javascript里的数组就可以了
    例子如下:
    <%
       var mar = new Array();
       mar[0] = "a" ;
       mar[1] = "b" ;
       mar[2] = "c" ;
       mar[3] = "d" ;
    %>
    <script>
    var test = new Array();
    <%
      for(var n = 0 ; n < mar.length ;n ++)
      {
          str = "test["+n+"]='" + mar[n] +"';";
          Response.Write(str);
      }
    %>
    alert(test[2]);
    </script>如果你仔细就会发现,上面的代码经过服务器编译以后,传到客户端时代码就变成了:
    <script>
    var test = new Array();
    test[0]='a';test[1]='b';test[2]='c';test[3]='d';
    alert(test[2]);
    </script>