Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 12. diel - Ajaxu v JavaScripte - Prehliadač pokemonov

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
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.

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.

Avatar
Samuel Hél
Tvůrce
Avatar
Odpovedá na Miloš Pabel
Samuel Hél:27.4.2020 16:01

Díky, hned to opravím :)

Avatar
Jaroslav Drobek:22.6.2022 18:25

Hodnocení:

  • "Podívejme se,...jaká data..."
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?

Odpovedať
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í....

Odpovedať
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.

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é.

Avatar
Tomáš Skyba:7.10.2022 8:04

No jo, zas je to rozbitý...

Avatar
Jan Poláček
Tvůrce
Avatar
Odpovedá 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>
Odpovedať
Instrukce na adrese 0x77104f29 odkazovala na adresu paměti 0x00000014. S pamětí nelze provést operaci: written.
Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 24.