更新しても、入力したリストが残るようにしたい。【localStorage】【JavaScript】
解決したいこと
更新しても、入力したリストが残るようにしたい。【localStorage】【JavaScript】
全くの初心者です。。投稿も初めてで見づらいかもしれません。
userlist[]に{id:, name:, address:},を入れていくことでリストを増やす仕組みを作りました。しかし、更新すると全て消えてしまします。
調べたところ、localStorageを使うと良いそうでした。
そして、それを使いconsole.logで記入したuserlist[]内のデータを取得するまで出来ました!
あとは「これを、更新した後のuserlistに残せられれば!」と考えております。
自分でやってみてもうまくいかず、そもそもこのやり方でできるのかわからず。。不安です。
どうかよろしくお願いいたします!!
該当するソースコード
<h1>【ユーザー一覧】</h1>
氏名:<input class="fullname" type="text" placeholder="お名前" />
出身地:<input class="Home" type="text" placeholder="埼玉 など" />
<button class="add" id="added">登録</button>
<ul class="user_list" id="listed"></ul>
<!-- 新規登録 -->
<script>
const fullnameText = document.querySelector(".fullname");
const HomeText = document.querySelector(".Home");
function newpush() {
userlist.push({
id: addZero(userlist.length + 1),
name: `${fullnameText.value}`,
address: `${HomeText.value}`,
});
banish();
updatelist();
console.log(userlist);
}
document.querySelector(".add").addEventListener("click", () => {
newpush();
});
function banish() {
fullnameText.value = null;
HomeText.value = null;
}
function addZero(num) {
return String(num).padStart(4, "0");
}
</script>
<!-- 配列内要素の処理 --><!-- 昇順降順 -->
<script>
const userlist = [];
function updatelist() {
let listHtml = "";
for (const data of userlist) {
listHtml += `<li>ID【${data.id}】 ${data.name}: ${data.address}</li>`;
}
document.querySelector(".user_list").innerHTML = listHtml;
const setjson = JSON.stringify(userlist);
localStorage.setItem("mykey", setjson);
const userlisted = localStorage.getItem("mykey");
console.log(userlisted);
}
updatelist();
</script>
自分で試したこと
localStorageをfunctionの外に持っていくと、エラーが出ました。
0 likes