2016-12-24 46 views
0

page1.js:解析數據形式逐頁使用JS/jquery的

在page1.js,我從一個回調方法,該方法我傳遞到update_page2獲得在r.message對象一些大的數據html的

if (r.message != undefined) { 
     var data = r.message.last_name; // trying with only one element for sample 
     console.log(data); 
     window.location = 'update_page2.html?data=' + data; 
    } 

update_page2.js:

$(document).ready(function() { 
function getQueryVariable(variable) { 
    var query = window.location.search.substring(1); 
    var vars = query.split('&'); 
    for (var i = 0; i < vars.length; i++) { 
     var pair = vars[i].split('='); 
     if (decodeURIComponent(pair[0]) == variable) { 
      return decodeURIComponent(pair[1]); 
     } 
    } 
    console.log('Query variable %s not found', variable); 
} 

console.log(getQueryVariable('data')); 
var d = getQueryVariable('data'); 
$('[data-fieldname="last_name"]').val(d); 
}); 

上述事情對我的作品,因爲我路過只有一個值(姓氏) 從頁面到頁面2。

問題1:當我通過從第1頁整個對象(r.message)到update_page2,在URL它顯示我update_page2.html?data=[object%20Object]正確,但無法解析的JS該對象。我如何解析這個對象。

(開的console.log(getQueryVariable(「數據」)),該目的是尋找像字符串而不是對象)

問題2:如果我通過一些陣列元件從第1頁到第2頁,如何在多個輸入字段中使用data-fieldname插入這些值。

手動我可以通過一個爲插入一個:

$('[data-fieldname="first_name"]').val(d['first_name']); 
$('[data-fieldname="last_name"]').val(d['last_name']); 
$('[data-fieldname="mobile_no"]').val(d['mobile_no']); 

,是有從頁傳遞值到頁面什麼更好的辦法。

由於提前

回答

1

如果您通過在URL的對象,只寫你的目標施放的結果字符串(即[對象%20Object]你看到的),你需要做的:

window.location = 'update_page2.html?data=' + JSON.stringify(data) 

這將通過對象結構作爲字符串(「{試驗:‘測試’}」代替[對象%20Object])

然後,檢索數據只是做JSON.parse(變量)

而且,在我看來,一個更優雅的方式做到這一點是使用本地存儲,讓您的網址並沒有得到改變,並顯示那個醜陋的JSON,你可以這樣來做:

localStorage.setItem("localstorage_test", JSON.stringify({test:'test', test2:'test2'})); 

和然後,找回它:

JSON.parse(localStorage.getItem("localstorage_test")) 

這將從頁工作頁面,因爲數據會(第一JS的範圍之間沒有本地)存儲在用戶的瀏覽器

+0

好的,謝謝,我發現它只是一個半小時之前。順便問一下我遇到了第二個問題,你能幫我找到一個簡單的解決方案嗎? &有沒有其他簡單的解決方案來傳遞數據頁面? –