i am trying to figure out a function that can push "Employee" skills into my localStorage via user input and then output a table with the data or update the existing table. I have a working table. Does anyone have an idea where to go from here? :)
i am also fully aware that localStorage isn't the best option.. But this is for a school project and we are not working with databases yet!
class Employee {
// vi bruger en constructor funktion for at lave en opskrift på objekter af en bestemt type.
//this metoden benyttes til at referere til det tilhørende objekt
constructor(name, gender, department, yy, email) {
this.name = name;
this.gender = gender;
this.department = department;
this.email = email;
this.skills = [];
}
addNewSkill(skill){
this.skills.push(skill);
}}
//Employee Database "Localstorage"
if(localStorage.getItem("Employee") == null) {
var employeeList = [];
employeeList.push (new Employee("Simon", "Male", "HR", 1999, "[email protected]"));
employeeList.push (new Employee("Mads", "Male","IT", 1999, "[email protected]"));
employeeList.push (new Employee("Jessica", "Female", "Sales",1998, "[email protected]"));
employeeList.push (new Employee("Benjamin", "Male","IT", 1997, "[email protected]"));
var employeeListString = JSON.stringify(employeeList);
localStorage.setItem("Employee", employeeListString);
document.querySelector("#employees").appendChild(buildTable(employeeList));
} else {
var employeeList = JSON.parse(localStorage.getItem("Employee"));
}
//Function creates table for employeeList
function buildTable(data) {
let table = document.createElement("table");
// Create table head and body
table.appendChild(document.createElement("thead"));
table.appendChild(document.createElement("tbody"));
let fields = Object.keys(data[0]);
let headRow = document.createElement("tr");
fields.forEach(function (field) {
let headCell = document.createElement("th");
headCell.textContent = field;
headRow.appendChild(headCell);
});
table.querySelector("thead").appendChild(headRow);
data.forEach(function (object) {
let row = document.createElement("tr");
fields.forEach(function (field) {
let cell = document.createElement("td");
cell.textContent = object[field];
if (typeof object[field] == "number") {
cell.style.textAlign = "left";
}
row.appendChild(cell);
});
table.querySelector("tbody").appendChild(row);
});
return table;
}
document.querySelector("#employees").appendChild(buildTable(employeeList));
window.localStorage.setItem(key,vlaue)stores data in local storage, check this link.