<html>
<head>
<link rel="stylesheet" type="text/css" href="styles.css" />
</head>
<body>
<form id="film-form">
<label for="title">Название:</label><br />
<input type="text" id="title" name="title" /><br />
<label for="genre">Жанр:</label><br />
<input type="text" id="genre" name="genre" /><br />
<label for="releaseYear">Год:</label><br />
<input type="text" id="releaseYear" name="releaseYear" /><br />
<input type="checkbox" id="isWatched" name="isWatched" />
<label for="isWatched">Успели посмотреть?</label><br />
<!-- <input type="submit" value="Submit"> -->
<button type="submit">Submit</button>
</form>
<table id="film-table">
<thead>
<tr>
<th>Название</th>
<th>Жанр</th>
<th>Год</th>
<th>Успели посмотреть?</th>
<th>Действие</th>
</tr>
</thead>
<tbody id="film-tbody">
<!-- Rows will be inserted here -->
</tbody>
</table>
<script src="script.js"></script>
</body>
</html>function handleFormSubmit(e) {
e.preventDefault()
const title = document.querySelector('#title').value;
const genre = document.querySelector('#genre').value;
const releaseYear = document.querySelector('#releaseYear').value;
const isWatched = document.querySelector('#isWatched').cahecked;
const edit = document.querySelectorAll('.edit');
const dels = document.querySelectorAll('.delete');
const film = {
title,
genre,
releaseYear,
isWatched,
edit: 'Редактировать',
delete: 'Удалить'
}
addFilmToLocalStorage(film)
}
function addFilmToLocalStorage(film) {
const films = JSON.parse(localStorage.getItem('films')) || [];
films.push(film);
localStorage.setItem('films', JSON.stringify(films))
renderTable();
}
function renderTable() {
const films = JSON.parse(localStorage.getItem('films')) || [];
const filmTableBody = document.querySelector('#film-tbody');
filmTableBody.innerHTML = "";
films.forEach((film) => {
const row = document.createElement('tr');
row.innerHTML = `
<td>${film.title}</td>
<td>${film.genre}</td>
<td>${film.releaseYear}</td>
<td>${film.isWatched ? "Да" : "Нет"}</td>
<td>
<button class="edit">${film.edit}</button>
<button class="delete">${film.delete}</button>
</td>
`;
filmTableBody.appendChild(row);
})
const tableBody = document.querySelector('tbody');
tableBody.addEventListener('click', (event) => {
event.target.closest('tr').remove();
});
}
document.querySelector('#film-form').addEventListener("submit", handleFormSubmit);
renderTable();const isWatched = document.querySelector('#isWatched').cahecked;- films = films.filter(film => film.id !== filmId);
localStorage.setItem('films', JSON.stringify(films));edit: 'Редактировать',
delete: 'Удалить'const form = document.querySelector('#film-form');
const tbody = document.querySelector('#film-tbody');
function getFilms() {
return JSON.parse(localStorage.getItem('films')) || [];
}
function setFilms(films) {
localStorage.setItem('films', JSON.stringify(films));
}
function renderTable() {
const films = getFilms();
tbody.innerHTML = '';
films.forEach(film => {
const row = document.createElement('tr');
row.dataset.id = film.id;
row.innerHTML = `
<td>${film.title}</td>
<td>${film.genre}</td>
<td>${film.releaseYear}</td>
<td>${film.isWatched ? "Да" : "Нет"}</td>
<td>
<button class="edit">Редактировать</button>
<button class="delete">Удалить</button>
</td>
`;
tbody.appendChild(row);
});
}
function addFilmToLocalStorage(film) {
const films = getFilms();
film.id = Date.now();
films.push(film);
setFilms(films);
renderTable();
}
function handleFormSubmit(e) {
e.preventDefault();
const title = document.querySelector('#title').value;
const genre = document.querySelector('#genre').value;
const releaseYear = document.querySelector('#releaseYear').value;
const isWatched = document.querySelector('#isWatched').checked;
addFilmToLocalStorage({ title, genre, releaseYear, isWatched });
form.reset();
}
tbody.addEventListener('click', e => {
const target = e.target;
if (target.classList.contains('delete')) {
const row = target.closest('tr');
const id = Number(row.dataset.id);
let films = getFilms();
films = films.filter(f => f.id !== id);
setFilms(films);
renderTable();
}
});
form.addEventListener('submit', handleFormSubmit);
renderTable();