2016-11-15 16 views
0

私は入力ボックスで配列に値を追加するこのコードを持っています。そのアレイをlocalStorageに保存し、そのアレイの内容を別のページに表示したいと思います。javascript array in localstorage

<button type="button" id="submit">Submit</button> 
<button type="button" id="display">Display</button> 
window.onload = function() { 
    var inputArray = []; 
    var input = document.getElementById('inputbox'); 
    var screen = document.getElementById('screen'); 

    document.getElementById('submit').onclick = function() { 
     inputArray.push(input.value); 
     screen.innerHTML = input.value; 
    }; 

    document.getElementById('display').onclick = function() { 
     screen.innerHTML = inputArray 
    }; 
} 
+3

だから今あなたの問題は何ですか?あなたはそれを詳しく教えていただけますか? –

+0

ページをリフレッシュすると、配列の内容が失われます。これらの内容をlocalstorageに保存したいと思います。そのため、ページの更新時に配列が空にならないようにします。 – ekbayrak2

+0

Arrayを追加するロジックはどこで実装しましたか?LocalStorage? – xAqweRx

答えて

2

localStorageにデータを保存していません。 localStorageは文字列データのみを保持するため、保存中はstringify、読み取り中はparseとなります。

window.onload = function() { 
    var inputArray = []; 

    //Check if data is persisted in localStorge then load in the array 
    var str = localStorage.getItem('nyArray') 
    if (str) { 
     inputArray = JSON.parse(str); 
    } 

    var input = document.getElementById('inputbox'); 
    var screen = document.getElementById('screen'); 

    document.getElementById('submit').onclick = function() { 
     inputArray.push(input.value); 
     screen.innerHTML = input.value; 

     //Store stringifyed string 
     localStorage.setItem('nyArray', JSON.stringify(inputArray)) 
    }; 

    document.getElementById('display').onclick = function() { 
     screen.innerHTML = inputArray 
    }; 
} 
+1

これは、submit 'click'関数の中で' getItem'ではなく 'setItem'でなければなりません。 – sam

+0

あなたのスニペットでは、 'localStorage'を' localStorge'のように綴っています。 –

+0

typoのためにありがとうございます。 – Satpal

-2

使用グローバル変数は下記参照

window.savedarray = inputArray

は今、あなたが他のページ

+0

これはローカルストレージに配列を格納するのではなく、単純にグローバル変数として格納するためです。 –

+0

グローバル変数(それ自体が十分に悪い)を格納していても、その変数をサイトの他のページで使用できるようにはなりません。 –

1

あなたはstringify、あなたのアレイとは、それを保存することができますでsavedarrayにアクセスすることができますlocalStorage。必要に応じてparseを読み、配列に戻します。

var originalArr = ["V", "A"]; 
var strArr = JSON.stringify(originalArr); 

// to save your array 
localStorage.setItem("YOUR_KEY",strArr); 

// to read from localstorage 
var yourOriginalArray = localStorage.getItem("YOUR_KEY");