Przenoszenie danych z pętli na zewnątrz

Odpowiedz Nowy wątek
2019-04-12 19:31
0

Witam,
Jak mogę zmodyfikować ten kod, aby wyjąć funkcję sprawdz() z pętli i pobrać zmienną razem do funkcji? Bo w tym kodzie wyskakuje: ReferenceError: sprawdz is not defined. Czyli: wyjąć funkcję z pętli, ale tak, aby pętla po ostatnim okrążeniu "wypluła" zmienną razem do funkcji sprawdz(). Mam nadzieję, że w zrozumiały sposób napisałem (jeśli nie to wyjaśnię w odpowiedziach).

Kod:

let Snumer = 0;
let Srazem = 0;

function pobierzdivy()
{
    let Srekordy = [...document.querySelectorAll('.wiersz')].length;
    Srekordy = Srekordy -1;

    while(Snumer < Srekordy)
    {
        //Pobieranie ceny i ilości produktu
        let cena = document.getElementById('cenatab'+Snumer).innerHTML;
        let ilosc = document.getElementById('ilosc'+Snumer).value;

        //Obliczanie wszystkich cen
        let iloraz = cena * ilosc;
        Srazem = Srazem + iloraz;

        //Sprawdzane czy div z sumą jest taki sam jak suma
        function sprawdz()
        {   
            let sumadiv = document.getElementById('razem').value;
            if(Srazem != sumadiv)
            {
                alert("Błąd podczas sprawdzania poprawności formularza. Spróbuj ponownie.");
                window.location("podsumowanie.php");
            }
        }
        console.log(Srekordy);
        Snumer++;
    }
}

Pozostało 580 znaków

2019-04-12 19:37

Zapewne utworzenie jej przed pętlą. W pętli po prostu ją wywołaj i tyle

Dziękuję za pomoc. Działa. - Gouda105 2019-04-12 19:40

Pozostało 580 znaków

2019-04-12 20:07
0

A teraz chciałbym zrobić, aby zmienna iloraz mogła być odczytana w funkcji sprawdz :) Proszę o pomoc ;)

Pozostało 580 znaków

2019-04-12 20:15
0
Gouda105 napisał(a):

A teraz chciałbym zrobić, aby zmienna iloraz mogła być odczytana w funkcji sprawdz :) Proszę o pomoc ;)

function sprawdz (iloraz)
{
kod
}

i wywołaj ją właśnie podając iloraz w parametrze

edytowany 1x, ostatnio: pavarotti, 2019-04-12 20:15

Pozostało 580 znaków

2019-04-12 20:22
0

Tu jeszcze kod:

let Snumer = 0;
let Srazem = 0;

function sprawdz()
{  
    let sumadiv = document.getElementById('razem').innerHTML;
    sumadiv = parseFloat(sumadiv);
    console.log(Srazem);
    console.log(sumadiv);
    if(Srazem !== sumadiv)
    {
        alert("Błąd podczas sprawdzania poprawności formularza. Spróbuj ponownie.");
        location.href = "podsumowanie.php";
    }
}

function pobierzdivy()
{
    let Srekordy = [...document.querySelectorAll('.wiersz')].length;

    while(Snumer < Srekordy)
    {
        //Pobieranie ceny i ilości produktu
        let cena = document.getElementById('cenatab'+Snumer).innerHTML;
        let ilosc = document.getElementById('ilosc'+Snumer).value;

        //Obliczanie wszystkich cen
        let iloraz = cena * ilosc;
        Srazem = Srazem + iloraz;

        //Sprawdzane czy div z sumą jest taki sam jak suma
        console.log(Srekordy);
        Snumer++;
    }
}

Zapomniałem go dać, a trochę się zmienił

Pozostało 580 znaków

2019-04-12 20:24
0
function sprawdz(iloraz)
{  
     let sumadiv = document.getElementById('razem').innerHTML;
     sumadiv = parseFloat(sumadiv);
     console.log(Srazem);
     console.log(sumadiv);
     console.log(iloraz);

     if(Srazem !== sumadiv)
     {
         alert("Błąd podczas sprawdzania poprawności formularza. Spróbuj ponownie.");
         location.href = "podsumowanie.php";
     }
 }
edytowany 2x, ostatnio: pavarotti, 2019-04-12 20:25
O, dziękuję. - Gouda105 2019-04-12 20:30

Pozostało 580 znaków

2019-04-12 20:32
0

Ale iloraz pokazuje jako: undefined

Kod:

let Snumer = 0;
let Srazem = 0;

function sprawdz(iloraz)
{  
    let sumadiv = document.getElementById('razem').innerHTML;
    sumadiv = parseFloat(sumadiv);
    console.log(Srazem);
    console.log(sumadiv);
    console.log(iloraz);
    if(iloraz !== sumadiv)
    {
        alert("Błąd podczas sprawdzania poprawności formularza. Spróbuj ponownie.");
        location.href = "podsumowanie.php";
    }
}

function pobierzdivy()
{
    let Srekordy = [...document.querySelectorAll('.wiersz')].length;

    while(Snumer < Srekordy)
    {
        //Pobieranie ceny i ilości produktu
        let cena = document.getElementById('cenatab'+Snumer).innerHTML;
        let ilosc = document.getElementById('ilosc'+Snumer).value;

        //Obliczanie wszystkich cen
        let iloraz = cena * ilosc;
        Srazem = Srazem + iloraz;

        //Sprawdzane czy div z sumą jest taki sam jak suma
        console.log(Srekordy);
        Snumer++;
    }
}
Bo musisz gdzieś go wcześniej zadeklarować, sam z siebie nie powstanie będąc w parametrze ;p - pavarotti 2019-04-12 20:36
A czy mogę z jakoś pętli wziąć np ilosc i włożyć do sprawdz()? - Gouda105 2019-04-12 20:45
pobierzdivy() może zwracać iloraz, czyli return iloraz i wtedy Ci go zwróci - pavarotti 2019-04-12 20:59

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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