我正在尝试从一个页面加载一个数组,然后使用javascript / jQuery将结果显示在另一个页面上。因此,用户将从下拉列表中进行选择。根据此下拉列表,“客户”地址,电话,电子邮件等将显示在文本字段中。我试图将这些结果存储到数组(数组的一个索引中的名称|地址|等),在第二个屏幕上显示结果,然后允许用户在必要时添加更多名称。
目前我正在尝试使用localStorage存储值,然后使用JSON.stringify转换结果,以便将它们存储在数组中。
我认为这些都是相关的:
var customerArray = [];
var getName = $('#DropDownList1').val();
var getAddress = $('#DataList1').text().trim();
var getPhone = $('#DataList2').text().trim();
var getEmail = $('#DataList3').text().trim();
//store the variables
localStorage.setItem("name", getName);
localStorage.setItem("address", getAddress);
localStorage.setItem("phone", getPhone);
localStorage.setItem("email", getEmail);
//user will click #btnAdd to add the customers information
//into customerArray[]
$("#btnAdd").click(function () {
var setName = localStorage.getItem("name");
var setAddress = localStorage.getItem("address");
var setPhone = localStorage.getItem("phone");
var setEmail = localStorage.getItem("email");
var post = setName + setAddress + setPhone + setEmail;
if (customerArray.length == 0) {
customerArray[0] = post;
} else {
for (var i = 1; i < customerArray.length; ++i) {
//store results of 'post' into the array
customerArray.push(post);
localStorage.setItem("storedArray",JSON.stringify(customerArray));
}
}
}); //end #btnAdd click event
此处第2页的表格将加载一个文本字段,该字段将(应该)显示数组的结果(customerArray)。不幸的是,我只能得到1个值。
目前这是用于显示结果的块:
$('#tbContactList').val(JSON.parse(localStorage.getItem("storedArray")));
如果重要,我正在使用Visual Studio Express 2012 for Web编写应用程序。最初填充客户信息的数据来自我使用ASP控件获取的数据库。我相信使用ASP / C#有一个非常简单的解决方案,但我正在尝试使用javascript / jQuery解决这个问题 - 我比使用C#更熟悉这些语言。
谢谢。
答案 0 :(得分:0)
使用Array.join()将数组转换为要存储的字符串。 然后使用Array.split()将您的字符串转换回数组。
实施例
var arr=['name','email','other'];
var localStorageString=arr.join(',');
localStorage.setItem('info',localStorageString);
var reassemble=localStorage.info.split(',');
for(var i=0;i<reassemble.length;i++){
document.body.innerHTML+=reassemble[i]+"<br/>";
}
为什么用户必须离开当前页面?是选项卡式/动态界面而非选项?