Ich habe stundenlang recherchiert und einige Male im Stapelüberlauf gefragt, aber die Antworten haben nicht geholfen oder ich verstehe überhaupt nicht (der Benutzer hat jquery und php als Teil der Lösung benutzt, die ich nicht kenne wie zu benutzen)Wie bearbeiten und aktualisieren Sie Daten im lokalen Speicher?
Hier sind meine Codes (Current-wird nur angezeigt, wenn Benutzer angemeldet ist)
var currentUser=userList;
document.addEventListener("DOMContentLoaded",loadUserData);
function loadUserData() {
currentUser = localStorage.getItem("currentUser");
if(currentUser!=null) {
currentUser = JSON.parse(currentUser);
document.getElementById('username').value = currentUser.username;
document.getElementById('name').value = currentUser.name;
document.getElementById('password').value = currentUser.password;
document.getElementById('email').value = currentUser.email;
console.log(currentUser.username);
console.log(currentUser.name);
console.log(currentUser.password);
console.log(currentUser.email);
}
}
Meine Codes Benutzer als Objekte in einem Array hinzuzufügen, wenn sie für ein Konto anmelden:
var userList;
document.addEventListener("DOMContentLoaded", loadUserList);
function loadUserList(){
if(localStorage.getItem("userList")===null) {
userList = [] ;
} else {
userList = JSON.parse(localStorage.getItem('userList'));
}
}
function saveUserToStorage(){
var u=document.getElementById("username").value;
var n=document.getElementById("name").value;
var p=document.getElementById("password").value;
var e=document.getElementById("email").value;
var user={"username":u,"name":n,"password":p,"email":e};
localStorage["user"]=JSON.stringify(user);
userList.push(user);
localStorage.setItem('userList',JSON.stringify(userList));
}
Wenn ich mich anmelde, w Er sollte mich auf die Seite zum Bearbeiten des Profils leiten und Daten in dem Formular anzeigen, das der Benutzer bei der Anmeldung eingegeben hatte. Was ich jetzt brauche, ist nur die lokalen Speicherdaten zu ändern, indem Sie das Formular ausfüllen. Genauso wie es über das Inspect Element bearbeitet wird, nur dass es über das Profil bearbeiten bearbeitet wird. Wie erreiche ich das?
Bitte helfen Sie mir. Würde schätzen Lösungen ohne jquery/php
Beispiel für lokalen Speicher:
Vor
Bearbeitung{"username":"alice66","name":"alice tan","password":"123","email":"[email protected]om"}
Nach der Bearbeitung (durch Seite Profil bearbeiten)
{"username":"ben66","name":"ben ong","password":"qwerty","email":"[email protected]"}
Was wäre die korrekte Funktion zu tun?
Ich habe versucht, die folgende Funktion, aber es hat nicht funktioniert:
var updatedUser=currentUser;
document.addEventListener("DOMContentLoaded",saveChanges);
function saveChanges() {
updatedUser = localStorage.getItem("updatedUser");
updatedUser = JSON.parse(updatedUser);
var u = document.getElementById("username").value = updatedUser.username;
var n = document.getElementById("name").value = updatedUser.name;
var p1 = document.getElementById("password1").value = updatedUSer.password1;
var p2 = document.getElementById("password2").value = updatedUser.password2;
var e = document.getElementById("email").value = updatedUser.email;
updatedUser={"username":u,"name":n,"password1":p1,"password2":p2,"email":e};
updatedUser.push(updatedUser);
localStorage.setItem('updatedUser',JSON.stringify(updatedUser));
}
Blick in die Browser-Konsole zu demonstrieren. Es wird verständliche Fehler werfen –
so .. Sie speichern Benutzer in ihrem eigenen Browser-Cache? – user2267175
@Jonasw danke für deine Hilfe, nein, es hat keine Fehler angezeigt – blackJack