Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

adding list to array of list in localstorage

I have list of students like as follows form from user input form:

 //student form input for 1st time
 var student={name:"a",roll:"9",age:13}
 //student form input for 2nd time
 var student={name:"b",roll:"10",age:14}
 //student form input for 3rd time
 var student={name:"c",roll:"11",age:15}

Actually, i am developing phonegap applications. Each time the user submit form-input i.e. student information, I want to save them into localstorage. Finally, when online, i want to sync them. I know i can store them in localstorage as follows:

 localStorage.setItem("studentinfo", JSON.Stringfy(student));

But, this will remove the first student info in the local storage when i save second student info.

Infact, when i save first, second and third input respectively, i want to add them in localstorage array and finally the result in localstorage should be like

key=studentlist,
value=[
       {name:"a",roll:"9",age:13},  
       {name:"b",roll:"10",age:14},
       {name:"c",roll:"11",age:15}
    ]

How can it be done in localstorage or phonegap localstorage?

like image 271
Lasang Avatar asked May 23 '13 14:05

Lasang


People also ask

Can we add array in localStorage?

Before you save the array in the localStorage , you need to convert it to a string since it can only store strings. When you retrieve the array from the localStorage , you will get a string, so you need to convert it to an array if you want to manipulate it.


1 Answers

You want to hold all your students in an array like this:

var students = [];
students.push({name:"a",roll:"9",age:13});
students.push({name:"b",roll:"10",age:14});
students.push({name:"c",roll:"11",age:15});

And then store that in localStorage:

localStorage.setItem('studentsInfo', JSON.stringify(students));

The best way to do that would be with a function like this:

// When you get more student information, you should:
var addNewStudent = function (name, roll, age) {
    // retrieve it (Or create a blank array if there isn't any info saved yet),
    var students = JSON.parse(localStorage.getItem('studentsInfo')) || [];
    // add to it,
    students.push({name: name, roll: roll, age: age});
    // then put it back.
    localStorage.setItem('studentsInfo', JSON.stringify(students));
}
like image 120
phenomnomnominal Avatar answered Sep 21 '22 02:09

phenomnomnominal