【问题标题】:Convert classic ASP array to Javascript Array and populate html table将经典 ASP 数组转换为 Javascript 数组并填充 html 表
【发布时间】:2015-12-05 04:05:51
【问题描述】:

我是一个经典的 ASP 程序员,我已经将旧的安全经典 ASP 与 JQUERY 混合了一段时间,结果确实很好。但是我现在有一个项目需要比以往更多的离线数据处理。我边走边学,这是我最近的绊脚石……:

我需要在一个由 jquery livesearch 提供支持的 html 表中获取一个在服务器端创建的数组并在客户端(和离线)填充它。现在我需要将数组(经典 ASP)存储在 cookie 或本地存储中。然后就可以将其读入一个 html 表格中。

如果我可以依赖服务器端连接,我将使用经典 ASP 做到这一点:

  <tbody>
  <%
     For a = 0 to Pris_ant  
  %>                    
     <tr>
       <td><%=Priser(a,0)%></td>
       <td><%=Priser(a,1)%></td>
       <td><%=Priser(a,2)%></td>
       <td width="67"><%=Priser(a,3)%>,-</td>
       <td width="67"><%=Priser(a,4)%></td>
       <td width="70"><%=Priser(a,5)%></td>
  </tr>
     <% Next %>      
  </tbody>

好的,这不是最流畅的代码,但只要我处于强硬路线或在具有良好 LTE 连接的区域中,它就可以工作。但是用户很少在具有良好移动数据连接的站点上,即使没有网络,我也需要能够从本地存储中生成此列表。 A.k.a 我可以打开一个本地存储的 HTML 页面并从本地存储读取数据。

所以最大的问题是我如何以最简单的方式做到这一点? 我已经搜索了高低,我一点也不聪明。因此,我们将不胜感激。

更新:

好的,所以一些背景信息。 我正在使用 GetJson 下载这些数据。当我在“原始数据”上尝试 $each 函数时 - 它就像一个魅力。

但是: 为了将数据保存在本地存储中,我首先使用 JSON.stringify。 当我从本地存储中检索数据时,我尝试使用 JSON.parse - 但我得到的只是:“JSON.parse 不是函数”

这是从本地存储中获取数据后显示的数据:

Var JsonData = [{"rowNumber":563663,"hasWarning":true,"isInvoiceAccount":true,"phone":"","name":"Bertel AS","address1":"Co/Skanning","address2":"PB 52","attention":"","mobile":"","email":"faktura@bos","fax":"","zipCity":"N-1471 Lørenskog","invoiceAccount":"","account":"3","country":"NORGE","salesRep":"4","countryCode":"no"},{"rowNumber":563674,"hasWarning":false,"isInvoiceAccount":true,"phone":"","name":"LILLEHAMMER","address1":"POSTBOKS 1100","address2":"","attention":"","mobile":"","email":"","fax":"","zipCity":"N-2605 LILLEHAMMER","invoiceAccount":"","account":"14","country":"NORGE","salesRep":"4","countryCode":"no"},{"rowNumber":563676,"hasWarning":true,"isInvoiceAccount":true,"phone":"63929788","name":"Nygaard","address1":"Postboks 82","address2":"","attention":"","mobile":"","email":"karosseri","fax":"","zipCity":"N-2051 Jessheim","invoiceAccount":"","account":"16","country":"NORGE","salesRep":"4","countryCode":"no"},{"rowNumber":563686,"hasWarning":false,"isInvoiceAccount":true,"phone":"","name":"TRØGSTAD","address1":"POSTBOKS 165","address2":"","attention":"","mobile":"","email":"tkarosse","fax":"","zipCity":"N-1860 TRØGSTAD","invoiceAccount":"","account":"26","country":"NORGE","salesRep":"4","countryCode":"no"}]

当我尝试使用 $.each 时,我要么得到“未定义”,要么得到变量字符串中每个字母的拆分。

$.each( JsonData, function ( index, value ) {
  console.log( "index: " + index + ", name: " + value.name );
});

我也试过这个:

  $.each( JsonData, function ( index, value ) {
    console.log( "index: " + index + ", name: " + value[index].name );
  });

我尝试使用 JSON.Stringify 和 JSON.PARSE,但到目前为止没有任何帮助。

// var JsonData = JSON.stringify(this.result);
// var JsonData = $.parseJSON(JSON.stringify(this.result));
// var JsonData = this.result;
// var JsonData = JSON.parse(JsonData);

【问题讨论】:

    标签: jquery arrays asp-classic local-storage


    【解决方案1】:

    一种可能的解决方案:

    1. 创建一个以 JSON 格式返回数组的 ASP 页面:

      [
      <% For a = 0 to Pris_ant %>    
          { "prop1": <%=Priser(a,0)%>, "prop2": <%=Priser(a,1)%> //etc }, 
      <% Next %>
      ]
      
    2. 然后在页面加载时检查您的本地存储

    3. 如果它为空,则发出 ajax 请求($.getJSON() 获取您的数组并将其存储在本地存储中

    更新。

    一旦你从服务器得到这个数组,你就可以使用jQuery.each()遍历它:

    var result = [
        { "prop1": 1 },
        { "prop1": 2 },
        { "prop1": 3 }
    ];
    
    $.each( result, function ( index, value ) {
        alert( "index: " + index + ", prop1: " + value.prop1 );
    });
    

    JSFiddle

    【讨论】:

    • 我想出了类似的东西。但是...我如何循环遍历 JSON 数组后缀。我看过 $.each,但我无处可去,快
    • 另外,问题出在我使用 JSON.stringify 将其保存到本地存储之后。当我尝试反转“字符串化效果”时,我得到 JSON.parse is not a function
    猜你喜欢
    • 1970-01-01
    • 2012-07-25
    • 2015-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2021-10-19
    相关资源
    最近更新 更多