Zmienna z API

Odpowiedz Nowy wątek
2020-03-25 17:12

Rejestracja: 2 tygodnie temu

Ostatnio: 4 dni temu

0
function usd() {
                var xhttp = new XMLHttpRequest();
                xhttp.onreadystatechange = function() {
                    if (this.readyState == 4 && this.status == 200) {
                        document.getElementById("demo").innerHTML = this.responseText;
                    }
                };
                xhttp.open("GET", "http://api.nbp.pl/api/exchangerates/rates/a/usd/", true);
                xhttp.send();
            }

taki kodzik który zwraca wartośc:

{"table":"A","currency":"dolar amerykański","code":"USD","rates":[{"no":"059/A/NBP/2020","effectiveDate":"2020-03-25","mid":4.2220}]}

potrzebuje wyciagnac zmienna z wartoscia kursu czyli "4.2220"
tak aby wrzucic to do kalkulatora

edytowany 2x, ostatnio: Yankesowsky, 2020-03-25 17:13
Czemu nie fetch? - sztadii 2020-03-25 21:33
Lepiej by to wyglądało, gdybyś odseparował logikę, która pobierze dane od logiki, która wpisze pobrane dane do dokumentu HTML. - sztadii 2020-03-25 21:38

Pozostało 580 znaków

2020-03-25 17:34
Moderator

Rejestracja: 17 lat temu

Ostatnio: 1 minuta temu

1

JSON.parse() zrobi ci z tego wyniku obiekt.

Pozostało 580 znaków

2020-03-25 17:36

Rejestracja: 2 tygodnie temu

Ostatnio: 4 dni temu

0
Ktos napisał(a):

JSON.parse() zrobi ci z tego wyniku obiekt.

JSON to czarna magia dla mnie wiec proszę o dokladniejsza wskazówke badz jakis odsyłacz do artykułu

edytowany 1x, ostatnio: Yankesowsky, 2020-03-25 17:36

Pozostało 580 znaków

2020-03-25 17:44

Rejestracja: 1 rok temu

Ostatnio: 28 minut temu

4
Yankesowsky napisał(a):
Ktos napisał(a):

JSON.parse() zrobi ci z tego wyniku obiekt.

JSON to czarna magia dla mnie wiec proszę o dokladniejsza wskazówke badz jakis odsyłacz do artykułu

www.google.com

Nic dodać nic ująć! :D - sztadii 2020-03-25 21:32

Pozostało 580 znaków

ŁF
2020-03-25 18:04
ŁF
Moderator

Rejestracja: 17 lat temu

Ostatnio: 7 godzin temu

1

Obstawiam, że nawet nie trzeba parsować, wystarczy responseText.rates[0].mid.


Pozostało 580 znaków

2020-03-25 18:17

Rejestracja: 2 tygodnie temu

Ostatnio: 4 dni temu

0
ŁF napisał(a):

Obstawiam, że nawet nie trzeba parsować, wystarczy responseText.rates[0].mid.

<script >
            function przeliczaj() {
                var krok1;
                var krok2;
                var pln = 1.00;
                var eur = 4.58;
                var usd = 4.22;

                switch (przelicznik.co.value)
                {
                    case "PLN":
                        krok1 = przelicznik.ile.value*pln;
                        break;
                    case "EUR":
                        krok1 = przelicznik.ile.value*eur;
                        break;
                    case "USD":
                        krok1 = przelicznik.ile.value*usd;
                        break;
                    default:
                        krok1 = "nie udało się:(";
                }

                switch (przelicznik.naCo.value)
                {
                    case "PLN":
                        krok2 = krok1/pln;
                        break;
                    case "EUR":
                        krok2 = krok1/eur;
                        break;
                    case "USD":
                        krok2 = krok1/usd;
                        break;
                    default:
                        krok2 = "nie udało się:(";
                }

                przelicznik.wynik.value = krok2;
            }
        </script>

jak mam to wstawic do tego

Normalnie, bierzesz i wstawiasz. Jak nie znasz podstaw i do tego nie chce Ci się pomyśleć samodzielnie, to wybrałeś zły zawód - ŁF 2020-03-26 11:39

Pozostało 580 znaków

2020-03-25 18:44
Moderator

Rejestracja: 17 lat temu

Ostatnio: 1 minuta temu

1

Twój kod z pierwszego posta z dodanym parsowaniem wyniku:


function usd() {
                var xhttp = new XMLHttpRequest();
                xhttp.onreadystatechange = function() {
                    if (this.readyState == 4 && this.status == 200) {
                        let usd = JSON.parse(this.responseText).rates[0].mid;
                        document.getElementById("demo").innerHTML = usd;
                    }
                };
                xhttp.open("GET", "https://api.nbp.pl/api/exchangerates/rates/a/usd/", true);
                xhttp.send();
            }

Pozostało 580 znaków

2020-03-25 18:53

Rejestracja: 2 tygodnie temu

Ostatnio: 4 dni temu

0
Ktos napisał(a):

Twój kod z pierwszego posta z dodanym parsowaniem wyniku:


function usd() {
                var xhttp = new XMLHttpRequest();
                xhttp.onreadystatechange = function() {
                    if (this.readyState == 4 && this.status == 200) {
                        let usd = JSON.parse(this.responseText).rates[0].mid;
                        document.getElementById("demo").innerHTML = usd;
                    }
                };
                xhttp.open("GET", "https://api.nbp.pl/api/exchangerates/rates/a/usd/", true);
                xhttp.send();
            }

Dzieki bardzo

Pozostało 580 znaków

2020-03-30 12:09

Rejestracja: 2 tygodnie temu

Ostatnio: 4 dni temu

0

dzieki za pomoc dla tych którzy faktycznie pomogli temat do zamkniecia koncowy kod wyglada tak

 <script>
               usd= dolar();

               function dolar() {
                   var xhttp = new XMLHttpRequest();
                   xhttp.onreadystatechange = function() {
                       if (this.readyState == 4 && this.status == 200) {
                           usd = JSON.parse(this.responseText).rates[0].mid;

                       }
                   };
                   xhttp.open("GET", "https://api.nbp.pl/api/exchangerates/rates/a/usd/", true);
                   xhttp.send();

               }

               eur= euro();
               function euro() {
                   var xhttp = new XMLHttpRequest();
                   xhttp.onreadystatechange = function() {
                       if (this.readyState == 4 && this.status == 200) {
                           eur = JSON.parse(this.responseText).rates[0].mid;
                       }
                   };
                   xhttp.open("GET", "https://api.nbp.pl/api/exchangerates/rates/a/eur/", true);
                   xhttp.send();

               }

            function przeliczaj() {
                var krok1;
                var krok2;
                var pln= 1;
                euro();
                dolar();

                switch (przelicznik.co.value)
                {
                    case "PLN":
                        krok1 = przelicznik.ile.value*pln;
                        break;
                    case "EUR":
                        krok1 = przelicznik.ile.value*eur;
                        break;
                    case "USD":
                        krok1 = przelicznik.ile.value*usd;
                        break;
                    default:
                        krok1 = "nie udało się:(";
                }

                switch (przelicznik.naCo.value)
                {
                    case "PLN":
                        krok2 = krok1/pln;
                        break; 
                    case "EUR":
                        krok2 = krok1/eur;
                        break;
                    case "USD":
                        krok2 = krok1/usd;
                        break;
                    default:
                        krok2 = "nie udało się:(";
                }

                przelicznik.wynik.value = krok2;
            }
        </script>    

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0