2013-03-07 57 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

相關問題