2015-07-14 3 views
0

Я пытаюсь загрузить массив с одной страницы, а затем результаты появляются на другом, используя 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 

Форма здесь вторая страница будет загружаться с помощью текстового поля, которое будет (должен) отобразить результаты массива (customerArray). К сожалению, я могу получить только 1 значение.

В настоящее время это блок используется для отображения результатов:

$('#tbContactList').val(JSON.parse(localStorage.getItem("storedArray"))); 

Если это имеет значение, я пишу приложения с помощью Visual Studio Express 2012 для Web. Данные, которые изначально заполняют информацию о клиентах, поступают из базы данных, для которой я использовал элементы управления ASP. Я уверен, что существует простое решение с использованием ASP/C#, но я пытаюсь решить эту проблему с помощью javascript/jQuery. Я больше знаком с этими языками, чем с C#.

спасибо.

+0

Вы можете проверить, что сохраняется в localstorage? (Chrome). Откройте консоль, перейдите в ressources слева, проверьте localstorage. – Marcio

+0

Вы сказали: «К сожалению, я могу получить только 1 значение». Какая ценность и что вы ожидаете? – jonmrich

+0

Я использую Firebug в FF, но на первой странице имя, адрес, телефон и адрес электронной почты, а затем комбинированные результаты (имя + адрес + телефон + электронная почта) хранятся в localStorage. Так что, похоже, все отсюда хорошо. – RunzWitScissors

ответ

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/>"; 
} 

http://jsfiddle.net/s5onLxd3/

Почему пользователь должен оставить текущую страницу, хотя? Является ли вкладка/динамический интерфейс не вариантом?

+0

К сожалению, это требование проекта. – RunzWitScissors

Смежные вопросы