2013-03-07 60 views
0

我有一个静态网站(我们称之为设置页面),我的Javascript函数使用来自mysql表格的AJAX数据并在HTML文档上绘制表格。 它的作用就像一个魅力 - 它需要所有我需要的数据,并以适当的方式进行。 这里是我的功能:如何从其他页面向Javascript函数发送数组?

function get_people() 
{ 
    $.post("/controller/get_people", function(data,status,xhr) 
    { 
     if(status=="success") 
     { 
      people_data = data; 
      draw_table(); 
     } 
    }) 
} 

的事情是,在另一页我有所有的人和复选框旁边桌子。 我正在检查这个复选框,单击一个按钮,我想进入设置页面 - 而且我的get_people函数只会选择来自mysql的数据,只关于前一页中检查的人。

从技术上讲,问题是 - 我怎样才能从另一个页面传递数组到javascript函数?我可以将它保存在DOM或其​​他东西上,并从JS读取它?

请给我一些想法:]

+0

如果旧的浏览器是不是一个问题,你可以去的localStorage或sessionStorage的,很容易使用 – monxas 2013-03-07 15:33:17

+0

饼干或HTML5 – jonasnas 2013-03-07 15:36:45

回答

2

您可以使用sessionStorageJSON.parse

在第一页:

var arrayJSON = JSON.stringify(yourArray); 
sessionStorage.setItem("tabledata",arrayJSON); 

关于你的第二页:

var tableData = JSON.parse(sessionStorage.getItem("tabledata")); 

这将数据保存在您的浏览器当前会话的持续时间的字符串。如果您希望将其更久地存储,则可以使用localStorage而不是sessionStorage(语法相同),即使用户关闭浏览器并稍后返回,也会存储它。

有更多的sessionStorage与localStorage的在MDN docs

+0

感谢您的存储; )但是,你告诉我应该放在第二页上的代码返回null。第一页上的数组已成功存储。也许你知道为什么吗? – pawel 2013-03-07 17:16:00

+0

这是否都发生在相同的域/会话? – 2013-03-07 17:17:44

+0

是的 - 我已经尝试了正常值,而不是数组,它工作:)。 JSON解析可能有问题吗? – pawel 2013-03-07 17:29:45

相关问题