Advertisement
avr39ripe

jsAJAXUsersGetter

May 21st, 2021
811
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <!DOCTYPE html>
  2. <html lang="en" id="html">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <title>XHR</title>
  6.     <style>
  7.         html,
  8.         body {
  9.             display: flex;
  10.             align-items: center;
  11.             justify-content: center;
  12.         }
  13.  
  14.         .container {
  15.             display: flex;
  16.             flex-direction: column;
  17.             justify-content: center;
  18.             align-content: center;
  19.             align-items: center;
  20.             margin-top: 30px;
  21.             position: relative;
  22.         }
  23.  
  24.         .mainDiv {
  25.             display: flex;
  26.             flex-direction: row;
  27.         }
  28.  
  29.         table, tr, td {
  30.             border: 1px solid black;
  31.             border-collapse: collapse;
  32.             padding: 5px;
  33.         }
  34.  
  35.         table {
  36.             width: 70%;
  37.             margin: 10px;
  38.         }
  39.     </style>
  40. </head>
  41. <body>
  42.     <div id="container" class="container">
  43.         <input type="number" id="userId">
  44.     </div>
  45.     <script>
  46.         'use strict'
  47.  
  48.         function getUser(userId) {
  49.             let url = `https://jsonplaceholder.typicode.com/users?id=${userId}`;
  50.             let method = 'GET';
  51.            
  52.  
  53.             let xhr = new XMLHttpRequest();
  54.  
  55.             xhr.open(method, url);
  56.             xhr.addEventListener('load', function () {
  57.                 if (this.status >= 400) {
  58.                     console.log(`HTTP ERROR CODE: ${this.status}!`);
  59.                 }
  60.                 else {
  61.                     let _users = JSON.parse(this.responseText);
  62.                     console.log(_users);
  63.  
  64.                     if (_users.length == 0) {
  65.                         alert('No such user!')
  66.                     }
  67.                     else {
  68.                         renderUser(_users[0], 'container')
  69.                     }
  70.                 }
  71.             });
  72.  
  73.             xhr.send();
  74.         }
  75.  
  76.         function renderUser(user, container) {
  77.             let _container = document.getElementById(container);
  78.  
  79.             let table = document.createElement('table');
  80.             let elems = ['id', 'name', 'username', 'email'];
  81.  
  82.             for (let el of elems) {
  83.                 let row = document.createElement('tr');
  84.                 let cell = document.createElement('td');
  85.                 cell.innerText = el;
  86.                 row.append(cell);
  87.                 cell = document.createElement('td');
  88.                 cell.innerText = user[el];
  89.                 row.append(cell);
  90.                 table.append(row);
  91.             }
  92.  
  93.             _container.append(table);
  94.         }
  95.  
  96.         const userId = document.getElementById('userId');
  97.  
  98.         userId.addEventListener('change', (event) => {
  99.             getUser(userId.value);
  100.         });
  101.     </script>
  102. </body>
  103. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement