Lase

WD

Jul 1st, 2020 (edited)
1,072
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 5 7.33 KB | None | 0 0
  1. <!DOCTYPE html>
  2.  
  3. <html>
  4.  
  5. <head>
  6. <script>
  7.  
  8.     popuni=(podaci)=>{
  9.  
  10.         for(let i=0;i<podaci.length;i++)
  11.         {
  12.             //dodavanje reda u tabelu
  13.             let red=document.createElement("tr");
  14.             document.getElementById("podaciTabela").appendChild(red);
  15.             //dodavanje celije sa ID
  16.             let IDproizvoda=document.createElement("td");
  17.             red.appendChild(IDproizvoda);
  18.             IDproizvoda.innerHTML=podaci[i].proizvodID;
  19.             //dodavanje celije sa nazivom
  20.             let naziv=document.createElement("td");
  21.             red.appendChild(naziv);
  22.             naziv.innerHTML=podaci[i].naziv;
  23.             //dodavanje celije sa cijenom
  24.             let cijenaPoKvadratu=document.createElement("td");
  25.             red.appendChild(cijenaPoKvadratu);
  26.             cijenaPoKvadratu.innerHTML=podaci[i].cijenaPoKvadratu;
  27.             //dodavanje celije sa slikom
  28.             let slikaUrl=document.createElement("img");
  29.             slikaUrl.setAttribute("src",podaci[i].slikaUrl);
  30.             slikaUrl.setAttribute("width","200");
  31.             slikaUrl.setAttribute("height","150");
  32.             red.appendChild(slikaUrl);
  33.             //dodavanje celije sa brojem like-ova
  34.             let likeCounter=document.createElement("td");
  35.             red.appendChild(likeCounter);
  36.             likeCounter.setAttribute("ID","like"+podaci[i].proizvodID);
  37.             likeCounter.innerHTML=podaci[i].likeCounter;
  38.             //dodavanje celije sa dugmetom za lajkanje
  39.             let likeButton=document.createElement("button");
  40.             likeButton.setAttribute("onclick","lajkaj("+podaci[i].proizvodID+")");
  41.             likeButton.innerHTML="Like";
  42.             red.appendChild(likeButton);
  43.         }
  44.  
  45.     }
  46.     /* OD varupe*/
  47.     /*
  48.         izvrsiSumu=(podaci)=>{
  49.         let suma=0;
  50.         for(let i=0;i<podaci.length;i++)
  51.         {
  52.             suma+=podaci[i].cijenaPoKvadratu;
  53.         }
  54.         alert(suma/podaci.length);
  55.         }
  56.     */
  57.  
  58.     /* MOJE */
  59.     izvrsiSumu=(podaci)=>{
  60.     let suma=0;
  61.     for(let i=0;i<podaci.length;i++)
  62.    {
  63.        suma+=podaci[i].cijenaPoKvadratu;
  64.    }
  65.     document.getElementById("suma").innerHTML=suma;
  66.     }
  67.  
  68.     izvrsiSumu2=(podaci)=>{
  69.     let kol=0;
  70.     for(let i=0;i<podaci.length;i++)
  71.    {
  72.        kol++;
  73.    }
  74.     document.getElementById("suma2").innerHTML=kol;
  75.     }
  76.  
  77.     izvrsiSumu3=(podaci)=>{
  78.     let suma=0;
  79.     let kol=0;
  80.     for(let i=0;i<podaci.length;i++)
  81.    {
  82.         suma+=podaci[i].cijenaPoKvadratu;
  83.        kol++;
  84.    }
  85.     document.getElementById("suma3").innerHTML=suma/kol;
  86.     }
  87.     /*------------------------------------------------*/
  88.     izvrsiSumu4=(podaci)=>{
  89.     let suma=0;
  90.     let kol=0;
  91.     for(let i=0;i<podaci.length;i++)
  92.    {
  93.         suma+=podaci[i].cijenaPoKvadratu;
  94.        kol++;
  95.    }
  96.     document.getElementById("suma4-1").innerHTML=suma;
  97.     document.getElementById("suma4-2").innerHTML=kol;
  98.     document.getElementById("suma4-3").innerHTML=suma/kol;
  99.     }
  100.  
  101.    
  102.  
  103. podaci=()=>{
  104. fetch('http://onlineshop.wrd.app.fit.ba/api/ispit20190914/Narudzba/GetProizvodiAll')
  105.   .then(
  106.     (response) =>{
  107.       if (response.status !== 200) {
  108.         console.log('Geska: ' +
  109.           response.status);
  110.         return;
  111.       }
  112.       response.json().then((data)=> {
  113.         console.log(data);
  114.         popuni(data);
  115.         izvrsiSumu(data);
  116.         izvrsiSumu2(data);
  117.         izvrsiSumu3(data);
  118.         izvrsiSumu4(data);
  119.       });
  120.     }
  121.   )
  122.   .catch((err) =>{
  123.     console.log('Fetch Greska :-S', err);
  124.   });
  125.     }
  126. lajkaj=(IDproizvodaZaLike)=>{
  127.     let adresa ='http://onlineshop.wrd.app.fit.ba/api/ispit20190914/Narudzba/Like?proizvodId='+IDproizvodaZaLike;
  128.     fetch(adresa)
  129.         .then(
  130.             (response) =>{
  131.                 if (response.status !== 200) {
  132.                     console.log('Geska: ' +
  133.                         response.status);
  134.                     return;
  135.                 }
  136.                 response.json().then((data)=> {
  137.                     console.log(data);
  138.                     document.getElementById("like"+IDproizvodaZaLike).innerHTML=data.likeCounter;
  139.                 });
  140.             }
  141.         )
  142.         .catch((err) =>{
  143.             console.log('Fetch Greska :-S', err);
  144.         });
  145. }
  146.  
  147. </script>
  148.  
  149. </head>
  150.  
  151. <body>
  152.  
  153. <button onclick="podaci()">Primi</button>
  154.  
  155.  
  156.  
  157. <table style="width:100%" id="podaciTabela" border="1px">
  158.   <tr>
  159.     <th>ID Proizvoda</th>
  160.     <th>Naziv</th>
  161.         <th>Cijena</th>
  162.         <th>slika</th>
  163.         <th>Broj like</th>
  164.         <th>Lajkanje</th>
  165.   </tr>
  166.  
  167. </table>
  168.  
  169.     <h3>Suma:<p id="suma">0</p></h3>
  170.     <h3>Kolicina:<p id="suma2">0</p></h3>
  171.     <h3>Konacno:<p id="suma3">0</p></h3> <!-- Cijena kroz proizvod  -->
  172.     <h1>Kombinovano:
  173.         <p id="suma4-1">0</p>
  174.         <p id="suma4-2">0</p>
  175.         <p id="suma4-3">0</p>
  176.     </h1>
  177.  
  178. </body>
  179.  
  180. </html>
  181.  
  182. //Amir---
  183. <script>
  184.  
  185. izlistajPodatke = (podaci) => {
  186.     for(let i = 0; i < podaci.length; i++) {
  187.  
  188.        // Ucitavanje podataka i ubacivanje u tabelu
  189.        let red = document.createElement("tr");
  190.        document.getElementById("tabelaPodataka").appendChild(red);
  191.  
  192.        let idProizvod = document.createElement("td");
  193.        red.appendChild(idProizvod);
  194.        idProizvod.innerHTML = podaci[i].proizvodID;
  195.  
  196.        let nazivProizvod = document.createElement("td");
  197.        red.appendChild(nazivProizvod);
  198.        nazivProizvod.innerHTML = podaci[i].naziv;
  199.  
  200.        let detalji = document.createElement("button");
  201.        red.appendChild(detalji);
  202.        detalji.id = podaci[i].proizvodID; // Postavi ID svakog button-a kao sto je i ID proizvoda
  203.        detalji.innerHTML = "Detalji"; // Postavi tekst u button-u
  204.  
  205.        // Funkcija koja se poziva samo kada kliknemo na Detalji button
  206.        detalji.onclick = function() {
  207.  
  208.            // Pronadji sve elemente u HTML-u
  209.            let novaSlika = document.getElementById("detaljiSlika");
  210.            let nazivTekst = document.getElementById("nazivProizvoda");
  211.            let cijenaTekst = document.getElementById("cijenaProizvoda");
  212.            let razlikaTekst = document.getElementById("razlikaProizvoda");
  213.  
  214.            // Postavi sve elemente za odredjeni proizvod
  215.            novaSlika.setAttribute("src", podaci[i].slikaUrl);
  216.            novaSlika.setAttribute("width", "400px");
  217.            novaSlika.setAttribute("height", "300px");
  218.                    
  219.            nazivTekst.innerHTML = "Naziv: " + podaci[i].naziv;
  220.  
  221.            cijenaTekst.innerHTML = "Cijena po kvadratu: " + podaci[i].cijenaPoKvadratu + "KM";
  222.  
  223.            let razlikaDugme = document.getElementById("razlikaDugme"); // Pronadji dugme sa ID "razlikaDugme"
  224.            // Funkcija koja se poziva samo kada kliknemo na dugme pod ID "razlikaDugme"
  225.            razlikaDugme.onclick = function() {
  226.                let razlika = vratiNajvecuCijenu(podaci) - podaci[i].cijenaPoKvadratu; // Izracun razlike
  227.                // (estetika koda) razlikaString je tu samo da citav ispis stavimo u jedan string, pa na innerHTML kazemo da ispise ovaj string, ovako urednije izgleda
  228.                let razlikaString = "Razlika: " + razlika + "KM " + "(" + vratiNajvecuCijenu(podaci) + "KM" + " - " + podaci[i].cijenaPoKvadratu + "KM" + ")";
  229.                razlikaTekst.innerHTML = razlikaString;
  230.            }        
  231.        }
  232.    }
  233. }
  234.  
  235. ucitajPodatke = () => {
  236.     let adresaPodataka = "http://onlineshop.wrd.app.fit.ba/api/ispit20190914/Narudzba/GetProizvodiAll";
  237.     fetch(adresaPodataka).then(
  238.         (response) => {
  239.             response.json().then((data) => {
  240.                 izlistajPodatke(data);
  241.             });
  242.         });
  243. }
  244.  
  245. // Funckija koja sluzi za da pronadje najskuplji proizvod
  246. vratiNajvecuCijenu = (podaci) => {
  247.     // Klasicni C++ nacin pronalazenja najveceg elementa
  248.     let najvecaCijena = 0;
  249.     for(let i = 0; i < podaci.length; i++) {
  250.        if(podaci[i].cijenaPoKvadratu > najvecaCijena) {
  251.             najvecaCijena = podaci[i].cijenaPoKvadratu;
  252.         }
  253.     }
  254.     return najvecaCijena;
  255. }
  256.  
  257. </script>
Add Comment
Please, Sign In to add comment