Приложение CRUD с javascript

CRUD с js и локальным хранилищем

так что давайте начнем со страницы index.html

‹! DOCTYPE html›

‹Html›

‹Head› ‹/head›

‹Form id =” myForm ”›

‹Input type =” text ”id =” text ”›

‹Button› Отправить ‹/button›

‹Div id =” main ”› ‹/div›

‹Скрипт src =” crud.js ”› ‹/script›

‹/Html›

теперь давайте создадим файл crud .js

сначала создайте массив для хранения данных, например

пусть комментарии = [];

для создания данных и их сохранения в локальном хранилище, пожалуйста, найдите приведенный ниже код

document.querySelector (‘# myForm’). addEventListener (‘submit’, function (e) {

e.preventDefault ()

comments.push ({

id: Math.random (),

сообщение: e.target.elements.text.value

})

localStorage.setItem ("Mesaages", JSON.stringify (комментарии))

})

Давайте теперь прочитаем данные, для этого мы создадим такую ​​функцию

let data = function (m) {

document.querySelector (‘# main’). innerHTML = ’’

comments.forEach (function (f) {

const msg = document.createElement (‘p’)

const button = document.createElement («кнопка»)

msg.textContent = f.message

document.querySelector (‘# main’). append (msg)

})

};

пожалуйста, вызовите данные (комментарии) в функции создания, чтобы отобразить данные

в верхней части этого файла crud.js любезно добавьте следующую строку кода, чтобы получить данные из локального хранилища.

const msgs = localStorage.getItem ("Mesaages")

пусть комментарии = [];

if (msgs) {

комментарии = JSON.parse (сообщения);

}

Это все для создания и чтения данных

Теперь давайте удалим данные по идентификатору.

для этого нам нужно создать функцию

let del = function (id) {

const d = comments.findIndex (function (com) {

вернуть com.id === id

})

if(d>-1){

комментарии.splice (d, 1)

}

}

давайте поработаем над функцией данных, чтобы удалить данные

добавить строку ниже в функции данных

const button = document.createElement («кнопка»)

button.textContent = «Удалить»

msg.appendChild (кнопка)

button.addEventListener (‘click’, function () {

дель (f.id)

localStorage.setItem ("Mesaages", JSON.stringify (комментарии))

данные (комментарии)

})

это для удаления

теперь давайте создадим два файла edit.html и editData.html для редактирования данных

в файле crud.js добавьте следующую строку кода

const editButton = document.createElement (‘a’)

editButton.textContent = «Изменить»

editButton.setAttribute (‘href’, `/ edit.html # $ {f.id}`)

msg.appendChild (editButton)

Теперь поместим весь код для файла crud.js

const msgs = localStorage.getItem ("Mesaages")

пусть комментарии = [];

if (msgs) {

комментарии = JSON.parse (сообщения);

}

// Читать

let data = function (m) {

document.querySelector (‘# main’). innerHTML = ’’

comments.forEach (function (f) {

const msg = document.createElement (‘p’)

const button = document.createElement («кнопка»)

const editButton = document.createElement (‘a’)

button.textContent = «Удалить»

editButton.textContent = «Изменить»

msg.textContent = f.message

msg.appendChild (кнопка)

editButton.setAttribute (‘href’, `/ edit.html # $ {f.id}`)

msg.appendChild (editButton)

button.addEventListener (‘click’, function () {

дель (f.id)

localStorage.setItem («Mesaages», JSON.stringify (комментарии))

данные (комментарии)

})

document.querySelector (‘# main’). append (msg)

})

};

данные (комментарии);

// Создайте

document.querySelector (‘# myForm’). addEventListener (‘submit’, function (e) {

e.preventDefault ()

comments.push ({

id: Math.random (),

сообщение: e.target.elements.text.value

})

localStorage.setItem ("Mesaages", JSON.stringify (комментарии))

данные (комментарии)

})

// удалять

let del = function (id) {

const d = comments.findIndex (function (com) {

вернуть com.id === id

})

if(d>-1){

комментарии.splice (d, 1)

}

}

в файле edit.html добавьте приведенный ниже код

‹! DOCTYPE html›

‹Html›

‹P› Это страница редактирования ‹/p›

‹Div id =” main ”› ‹/div›

‹Input type =” text ”id =” edit ”›

‹Button id =” update ”› Обновить ‹/button›

‹Скрипт src =” crud.js ”› ‹/script›

‹Script src =” editData.js ”› ‹/script›

‹/Html›

и в файле editData.js добавьте приведенный ниже код

let msgData = document.querySelector (‘# edit’)

let updButton = document.querySelector (‘# update’)

document.querySelector (‘# main’). innerHTML = ’’

// чтобы получить точный идентификатор из url

const msdId = location.hash.substring (1)

console.log (msdId)

const m = JSON.parse (localStorage.getItem (‘Mesaages’))

const da = m.find (функция (данные) {

вернуть data.id === msdId

})

if (da === undefined) {

location.assign (‘/ index.html’)

}

msgData.value = da.message

msgData.addEventListener (‘input’, function (e) {

da.message = e.target.value

localStorage.setItem ("Mesaages", JSON.stringify (m))

})

updButton.addEventListener (‘click’, function (e) {

//del(da.id)

localStorage.setItem ("Mesaages", JSON.stringify (m))

location.assign (‘/ index.html’)

})

Вот и все

Убедитесь, что идентификатор данных, хранящихся в локальном хранилище, заключен в кавычки «», поскольку я использую функцию Math.random () для генерации идентификатора, поэтому его не будет в «»

вы можете использовать uuid для генерации идентификатора, для этого просто добавьте ниже url в index.html внутри тега body

<script src="https://unpkg.com/uuid@latest/dist/umd/uuidv4.min.js"></script>

и измените comments.push ({

id: Math.random (), в uuidv4 ()

сообщение: e.target.elements.text.value

})

в файле crud.js