Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
function attachEvents() { let phoneUl = document.getElementById("phonebook"); let loadBtn = document.getElementById("btnLoad"); let nameInput = document.getElementById("person"); let numberInput = document.getElementById("phone"); let createBtn = document.getElementById("btnCreate"); loadBtn.addEventListener("click", loadRecords); createBtn.addEventListener("click", submitRecord); function loadRecords() { let myHeaders = new Headers(); myHeaders.append("Content-Type", "application/json"); let requestOptions = { method: 'GET', headers: myHeaders, redirect: 'follow' }; fetch("http://localhost:3030/jsonstore/phonebook", requestOptions) .then(response => response.json()) .then(result => renderRecords(result)) .catch(error => console.log('error', error)); } function renderRecords(result) { phoneUl.innerHTML = ""; let recordsArr = Object.entries(result); //if response is empty obj if (recordsArr.length==0){ phoneUl.textContent="No records available!" } else { recordsArr.forEach(r => { createSingleRecord(r[0],r[1].person, r[1].phone) }); } } function createSingleRecord(rId,rName, rPhone){ let recordLi = document.createElement("li"); recordLi.id = rId; recordLi.textContent = `${rName}: ${rPhone}`; let delBtn = document.createElement("button"); delBtn.textContent = "Delete"; delBtn.addEventListener("click", () => (deleteRecord(recordLi))); recordLi.appendChild(delBtn); phoneUl.appendChild(recordLi); } function deleteRecord(recordLi) { let myHeaders = new Headers(); myHeaders.append("Content-Type", "application/json"); let requestOptions = { method: 'DELETE', headers: myHeaders, redirect: 'follow' }; fetch(`http://localhost:3030/jsonstore/phonebook/${recordLi.id}`, requestOptions) .then(response => response.text()) //remove li after record is deleted, no need to make new request .then(result => recordLi.remove()) .catch(error => phoneUl.textContent = "No records available!"); } function submitRecord() { let name = nameInput.value; let phone = numberInput.value; let myHeaders = new Headers(); myHeaders.append("Content-Type", "application/json"); let raw = JSON.stringify({ "person": name, "phone": phone }); let requestOptions = { method: 'POST', headers: myHeaders, body: raw, redirect: 'follow' }; fetch("http://localhost:3030/jsonstore/phonebook", requestOptions) .then(response => response.json()) //refresh right away .then(result => loadRecords()) .catch(error => console.log('error', error)); nameInput.value=""; numberInput.value=""; } } attachEvents();
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)