2012-01-19 3 views
2

이 LocalStorage 기능을 사용하여 연락처 정보를 사용자 컴퓨터에 저장하는 연락처 목록 스타일 응용 프로그램을 빌드하려고합니다.두 개 이상의 값이있는 HTML5 LocalStorage

지금 내가 가지고있는 문제는 내가 알 수있는 한 항목 당 두 개의 값만 저장할 수 있다는 것입니다. 이름과 가치.

저는이 문제를 해결할 방법이 없다고 생각합니다. 어떤 제안? 나는 주어진 엔트리에 대해 약 4/5 필드의 정보를 저장하기를 희망한다.

감사합니다, 잭 헌트

+2

문자열에 JSON이 있습니까? –

+1

@Marek 매우 합리적인 것 같습니다. –

+1

@MarekSebera - 답변으로 게시해야합니다. 그것은 모두가 그것을하는 방법 거의입니다. – Anurag

답변

5

는 문자열 형식

// myCollection contains three objects, filled with custom type data, in array 
var myCollection = [{},{},{}] 
function replacer(key, value) { 
    if (typeof value === 'number' && !isFinite(value)) { 
     return String(value); 
    } 
    return value; 
} 
localStorage['first_collection'] = JSON.stringify(myCollection, replacer); 

에서 JSON으로 별도의 키 필드의 각 데이터 형식의 컬렉션을 절약 고려하고 당신이 궁금해하는 경우, 왜 거기에 replacer 기능은 아래의 첫 번째 링크를 살펴있다.
이 직접 json.org

http://www.json.org/js.html
JSON to string variable dump
JSON to string in Prototype
https://developer.mozilla.org/en/JSON
http://api.jquery.com/jQuery.parseJSON/

+1

좋습니다, 감사합니다.JSON에 대해 지금 읽고 있습니다. 결코 사용하지 마십시오. 그 기간 동안 자바 스크립트를 사용하지 않았습니다. 감사. –

+0

@VisionIncision을 환영합니다. –

0

당신은 JSON 객체로 로컬 저장 데이터를 저장할 수 있습니다. KEY는 "people"과 같을 수 있고 VALUE는 "people"객체의 배열 일 수 있습니다. 모든 종류의 CRUD는 javascript에서 발생하며 LocalStorage는 지속성 매체로만 사용됩니다.

0
내가 전에 이런 짓을

으로 일을하는 방법을 권장, 나는 종류의 더러운 알고,하지만하지 않습니다 나를 위해 일합니다. 내가 한 것은 객체를 저장할 수 있도록 저장소 프로토 타입을 다시 작성하는 것이 었습니다.

Storage.prototype._setItem = Storage.prototype.setItem; 
Storage.prototype._getItem = Storage.prototype.getItem; 

그리고 나는 새로운 사람과 다시 :

localStorage.setItem('test', {value: 1}); // or localStorage.setItem('test', '{value: 1}') 
localStorage.setItem('test2', [3,2,1]); // or localStorage.setItem('test2', '[3,2,1]'); 
localStorage.setItem('test3', '{no object stuff'); 
:이 갖는

Storage.prototype.setItem = function(key, object){ 
    if(typeof object == 'object'){ 
     this._setItem(key, JSON.stringify(object)); 
    } 
    else{ 
     this._setItem(key, object); 
    } 
} 
Storage.prototype.getItem = function(key){ 
    var val = this._getItem(key); 
    try{ 
     val = JSON.parse(val); 
    }catch(e){} 
    return val; 
} 

, 당신은로 사용할 수 있습니다, 내가 원래 방법 "저장"

우선

와 동일한 데이터를 검색하십시오. getItem

. 0
localStorage.getItem('test'); // Object: {value: 1} 
localStorage.getItem('test2'); // Array: [3,2,1] 
localStorage.getItem('test3'); // String: '{no object stuff' 
0
For Example we Have Two Input Element name and email, ok then we have to store key and value pair 

VAR 이름 = document.getElementById를 ('데모 1') 값;

var email = document.getElementById ('demo2'). 값;

localStorage.setItem ("name", name);

localStorage.setItem ("email", email);