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 submitBtn = document.getElementById("submitBtn"); let form = document.getElementById("inputForm"); let studentsTable=document.getElementById("results") function getAllStudents(){ let myHeaders = new Headers(); myHeaders.append("Content-Type", "application/json"); var requestOptions = { method: 'GET', headers: myHeaders, redirect: 'follow' }; fetch("http://localhost:3030/jsonstore/collections/students", requestOptions) .then(response => response.json()) .then(result => renderTable(result)) .catch(error => console.log('error', error)) } form.addEventListener("submit", function (e) { e.preventDefault(); let formData = new FormData(form) submitStudent(formData) }) function submitStudent(formData) { //store fields with invalid input let invalidFields=[]; let firstName = formData.get("firstName"); let lastName = formData.get("lastName"); //validate let textRegExp=/^[a-zA-Z]+$/; if (!textRegExp.test(firstName)){ invalidFields.push("First name"); } if (!textRegExp.test(lastName)){ invalidFields.push("First name"); } let facultyNumber = formData.get("facultyNumber"); let facNumRegExp=/^[0-9]+$/; if (!facNumRegExp.test(facultyNumber)){ invalidFields.push("Faculty number") } let gr = formData.get("grade"); let grade=Number(gr); if (!grade||isNaN(grade)){ invalidFields.push("Grade"); } //alert invalid fields if (invalidFields.length>0){ alert(`The following fields contain invalid input: ${invalidFields.join(", ")}`) } else { let stObj = { firstName, lastName, facultyNumber, grade } var myHeaders = new Headers(); myHeaders.append("Content-Type", "application/json"); var raw = JSON.stringify(stObj); var requestOptions = { method: 'POST', headers: myHeaders, body: raw, redirect: 'follow' }; fetch("http://localhost:3030/jsonstore/collections/students", requestOptions) .then(response => response.json()) .then(result => getAllStudents()) .catch(error => console.log('error', error)); } } function renderTable(data){ studentsTable.innerHTML=""; let dataArr=Object.values(data); dataArr.forEach(student => { let newTr=document.createElement("tr"); let fnTh=document.createElement("th"); fnTh.textContent=student.firstName; let lnTh=document.createElement("th"); lnTh.textContent=student.lastName; let facNth=document.createElement("th"); facNth.textContent=student.facultyNumber; let gradeTh=document.createElement("th"); gradeTh.textContent=student.grade; newTr.appendChild(fnTh); newTr.appendChild(lnTh); newTr.appendChild(facNth); newTr.appendChild(gradeTh); studentsTable.appendChild(newTr); form.reset(); }); } getAllStudents() } 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)