[[oktatas:web:javascript|< JavaScript]] ====== Táblázat renderelése ====== * **Szerző:** Sallai András * Copyright (c) 2024, Sallai András * Szerkesztve: 2024 * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]] * Web: https://szit.hu ===== Bevezetés ===== Dolgozók renderelése szerkesztő és nyomógombbal. Az onclick="" inline eseménykezelés nem működik modulok használata esetén. ===== Szimpla JavaScript ===== ==== Táblázat renderelése ====
id Név Település Fizetés
function renderTable() { state.empList.forEach(emp => { let tr = document.createElement('tr'); tr.innerHTML =` ${emp.id} ${emp.name} ${emp.city} ${emp.salary} `; doc.empsBody.appendChild(tr); }); } function updateEmployee(source) { console.log(source.dataset.city) } function deleteEmployee(id) { console.log(id) } ==== A this függvényen belül ==== onclick="updateEmployee()" function updateEmployee() { const source = this.event.target; console.log(source.dataset.city) } ==== A setAttribute() függvény használata ==== onclick="updateEmployee()" function updateEmployee() { const source = this.event.target; console.log(source.getAttribute('data-city')) } ===== Modulhasználattal =====
Id Név Település Fizetés
const url = 'http://localhost:8000/employees'; async function getEmployees() { try { let response = await fetch(url); let result = await response.json(); return result; }catch (err) { console.log('Hiba! A dolgozók lekérése sikertelen!'); console.log(err); } } export { getEmployees } import { getEmployees } from "./apiService.js"; const doc = { empsBody: document.querySelector('#empsBody') } const state = { empList: [] } window.addEventListener('load', () => { init(); }); function init() { getEmps(); } async function getEmps() { state.empList = await getEmployees(); renderTable() } function renderTable() { state.empList.forEach(emp => { let tr = document.createElement('tr'); tr.innerHTML =` ${emp.id} ${emp.name} ${emp.city} ${emp.salary} `; const editBtn = tr.querySelector('button:nth-child(1)'); editBtn.addEventListener('click', () => updateEmployee(editBtn)); const delBtn = tr.querySelector('button:nth-child(2)'); delBtn.addEventListener('click', () => deleteEmployee(emp.id)); doc.empsBody.appendChild(tr); }); } function updateEmployee(source) { console.log(source.dataset.city) } function deleteEmployee(id) { console.log(id) }