Skip to content

Commit 4983423

Browse files
authored
Challenge with Promises and Fetch
1 parent a3efef0 commit 4983423

File tree

2 files changed

+78
-0
lines changed

2 files changed

+78
-0
lines changed

Fetch & Promises/index.html

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
4+
<head>
5+
<meta charset="UTF-8">
6+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
7+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
8+
<title>Promises & Fetch</title>
9+
</head>
10+
11+
<body>
12+
<input type="button" id="primInput" onclick="AjaxCall()" value="Get Users Name" style="display: block;">
13+
<label for="users">Web App Users</label>
14+
<select name="users" id="users">
15+
</select>
16+
<input type="button" id="show" disabled value="Show All Data" style="display: block;">
17+
<div id="data"></div>
18+
<input type="button" onclick="AjaxPost()" value="Post Data" style="display: block;">
19+
<p id="suc"></p>
20+
<script src="main.js"></script>
21+
</body>
22+
23+
</html>

Fetch & Promises/main.js

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
/**Calling Data From API Using Fetch Object */
2+
function AjaxCall() {
3+
let url = 'https://jsonplaceholder.typicode.com/users'
4+
fetch(url, { method: 'GET' })
5+
.then((response) => {
6+
return response.json()
7+
})
8+
.then((resJson) => {
9+
let user = document.getElementById('users')
10+
let primBtn = document.getElementById('primInput')
11+
primBtn.setAttribute('disabled', '')
12+
13+
for (let i = 0; i < resJson.length; i++) {
14+
user.innerHTML += `<option value="${resJson[i].name}">${resJson[i].name}</option>`
15+
}
16+
17+
let show = document.getElementById('show')
18+
let domData = document.getElementById('data')
19+
show.removeAttribute('disabled','')
20+
21+
show.onclick = () => {
22+
domData.innerHTML = `User ID Is : ${resJson[user.selectedIndex].id}
23+
& Email is : ${resJson[user.selectedIndex].email}
24+
& Phone Number Is :${resJson[user.selectedIndex].phone} `
25+
}
26+
})
27+
.catch(err => err)
28+
}
29+
/** Sending Data Using HttpReq Method 'POST' */
30+
function AjaxPost() {
31+
let url = 'https://jsonplaceholder.typicode.com/posts'
32+
let bodyy = {
33+
title: prompt('Enter Your Name'),
34+
body: prompt('Enter Color'),
35+
userId: 2
36+
}
37+
fetch(url, {
38+
method: 'POST',
39+
body: JSON.stringify(bodyy),
40+
headers:{'content-type' : 'application/json'}})
41+
.then((response) => {
42+
return response.json()
43+
})
44+
.then((res) => {
45+
let msg = document.getElementById('suc')
46+
msg.innerHTML = `Information Added Successfully!<br>
47+
Name : ${res.title}<br>
48+
Color : ${res.body}<br>
49+
ID : ${res.userId}<br>
50+
`
51+
console.log(res)
52+
})
53+
54+
55+
}

0 commit comments

Comments
 (0)