NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 12 - AJAX v JavaScriptu - Prohlížeč pokémonů

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar

Člen
Avatar
:12.3.2020 13:27

Keď už sa ukazuje práca s AJAX starším, legacy spôsobom, vyhol by som sa používaniu arrow funkcií. A hlavne by som sa pri práci s cudzím API vyhol používaniu innerHTML atribútu. Získané texty treba treba použiť výlučne cez textContent atribút. To by malo byť aj vyslovene spomenuté ako základný bezpečnostný princíp.

 
Odpovědět
12.3.2020 13:27
Avatar
Miloš Pabel
Člen
Avatar
Miloš Pabel:17.3.2020 17:42

V HTML je chyba , píšeš místo atributu id v div elementu class a v JS pak voláš metodu getElementById kde dostaneš null.

 
Odpovědět
17.3.2020 17:42
Avatar
Samuel Hél
Tvůrce
Avatar
Odpovídá na Miloš Pabel
Samuel Hél:27.4.2020 16:01

Díky, hned to opravím :)

Odpovědět
27.4.2020 16:01
?
Avatar
Jaroslav Drobek:22.6.2022 18:25

Hodnocení:

  • "Podívejme se,...jaká data..."
 
Odpovědět
22.6.2022 18:25
Avatar
Lubor Pešek
Člen
Avatar
Lubor Pešek:3.8.2022 10:00

Jen bych se chtěl zeptat na ten limit. Jak se na něj přišlo?
Je to nějaký defaultní parametr u rest API?
Pokud ano, tak je víc takovýchto obecných parametrů?
Pokud ne, tak jak můžu já zjistit u cizího API, co v něm můžu takto použít?

Odpovědět
3.8.2022 10:00
Existují dva způsoby, jak vyřešit problém. Za prvé vyhoďte počítač z okna. Za druhé vyhoďte okna z počítače.
Avatar
Blanka Svobodová:8.8.2022 23:28

proč tady není ke stažení složka s ukázkou funkční stránky a js? Potřebovala bych si najít chybu, nefunguje mi to. :-(, což mě štve, .... konečně něco, co doma vzbudilo nadšení....

Odpovědět
8.8.2022 23:28
Kdy, když né teď. Kdo, když né já?
Avatar
Štěpán Pollak:27.9.2022 8:20

Bohužel mi program nefunguje a není možnost si ho zkontrolovat.

 
Odpovědět
27.9.2022 8:20
Avatar
Kamil Pajta
Člen
Avatar
Kamil Pajta:6.10.2022 16:21

Nefunguje , ani tu nie je odkaz na stiahnutie. Takže zatiaľ nepoužiteľné.

 
Odpovědět
6.10.2022 16:21
Avatar
Tomáš Skyba:7.10.2022 8:04

No jo, zas je to rozbitý...

 
Odpovědět
7.10.2022 8:04
Avatar
Jan Poláček
Tvůrce
Avatar
Odpovídá na Kamil Pajta
Jan Poláček:7.10.2022 11:21

Ahoj,

za mě tedy funkční, dobré je mít nejdříve část html kódu a poté JavaScript, představme si to, že to jede řádek po řádku, takže např.

let seznam_div = document.getElementById("poke-seznam");

přiřazuje element, ale ten už by měl existovat, jinak je to null (prázdno), dobré je také začít používat vývojářské nástroje v prohlížeči, konzole je skvělá věc, viz obrázek, pokud mám první javascript a poté HTML.

a na závěr tedy přikládám celý zdroják, co funguje

<div class="poke-container">
    <div id="poke-seznam"></div>
    <div id="poke-detaily"></div>
</div>
<script>
function stahniJSON(url, callback)
{
    let xhr = new XMLHttpRequest();
    xhr.onload = () => {
        callback(JSON.parse(xhr.response));
    }
    xhr.open("GET", url);
    xhr.send();
}
function nactiSeznam(url)
{
    let seznam_div = document.getElementById("poke-seznam");
    seznam_div.innerHTML = "<ul id='poke-seznam-ul'></ul>";
    let seznam_ul = document.getElementById("poke-seznam-ul");

    stahniJSON(url, (data) => {
        for (let pokemon of data.results)
        {
            let novaPolozka = document.createElement("li");
            novaPolozka.innerText = pokemon.name;
            seznam_ul.appendChild(novaPolozka);
            let poke_url = pokemon.url;
            novaPolozka.addEventListener("click", () => nactiPokemona(poke_url));
        }
    });
}
function nactiPokemona(url)
{
    let detaily_div = document.getElementById("poke-detaily");
    stahniJSON(url, (data) => {
        let html = `
            <img src="${data.sprites.back_default}" />
            <ul>
                <li>Název: ${data.name}</li>
                <li>Výška: ${data.height}</li>
                <li>Váha: ${data.weight}</li>
            </ul>
        `;

        detaily_div.innerHTML = html;
    });
}
nactiSeznam("https://pokeapi.co/api/v2/pokemon");
</script>
Odpovědět
7.10.2022 11:21
Instrukce na adrese 0x77104f29 odkazovala na adresu paměti 0x00000014. S pamětí nelze provést operaci: written.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 24.

OSZAR »