Zapisanie wyniku skryptu do zmiennej

0

Witam,

Nie jestem zbytnio zaawansowany w JS, próbowałem już różnych sposobów, ale cały czas coś nie działa... Chce wynik zwrócony przez skrypt php zapisać do zmiennej i wykorzystać ją do obliczenia ceny. Z racji tego, że nie wiem jak zapisać wynik bezpośrednio do zmiennej, zapisuję ją do niewidocznego div'a, a następnie do zmiennej. Niestety po wykonaniu funkcji, która jest przypisana pod przycisk zmienne single, duet etc. wyświetlają się jako NaN. Próbowałem jakoś konwertować zmienną rabat, ale też to nie bardzo wychodziło... Kod poniżej:

function rabat(){
        var szkolenieVal = $('#szkolenie').val(); 
        var kodVal = $('#kod').val();
        $('#wynik').load('kod.php?id='+szkolenieVal+'&kod='+kodVal);
        var rabat = $('#wynik').innerHTML;

        var single = 250-(rabat/100*250);
        var duet = 460-(rabat/100*250);
        var trio = 660-(rabat/100*250);
        var team = 1000-(rabat/100*250);

        $('#single').html('<h3>SINGLE - <s>250 ZŁ</s> '+single+' ZŁ</h2>');
        $('#duet').html('<h3>DUET - <s>440 ZŁ</s> '+duet+' ZŁ</h2>');
        $('#trio').html('<h3>TRIO - <s>660 ZŁ</s> '+trio+' ZŁ</h2>');
        $('#team').html('<h3>TEAM - <s>1000 ZŁ</s> '+team+' ZŁ</h2>');
    }
0

a coś takiego nie wystarczy:

<?php echo 'var JSResult = '.$PHPResult.';'; ?>

w odpowiednim miejscu?

Zrób też jakąś walidacje w js, żeby się skrypt nie wieszał.

0

Chodzi o to, że nie chcę przeładowywać strony wiec po kliknięciu w przycisk chce przesłać do skryptu php 2 zmienne z pól select i input. Skrypt php łączy się z bazą danych MySQL i sprawdza jaki rabat jest dla danego kodu i danego id szkolenia i zwraca wysokość tego rabatu. Następnie javascript ma przeładować zawartość 4 div'ów gdzie są ceny pakietów.szkoleniowych.

0

Ajax domyślnie działa asynchronicznie. Nie możesz odwołać się do niepobranych jeszcze danych, a właśnie tak robisz.
Popatrz na to:

    $.ajax({
        url: "kod.php",
        cache: false, 
        data: {
            id: szkolenieVal,
            kod: kodVal
        },
        success: function (response) {
            alert("Tutaj dalsze obliczenia na wartości " + response);
        },
        error: function () { alert("Wystąpił błąd podczas pobierania danych."); },
    });
0
freemp3 napisał(a):

Problem zapewne leży w tym, że liczba wczytana z div-a jest traktowana jako ciąg znaków, więc powinieneś przy jej odczytywaniu użyć parseInt lub parseFloat.

Próbowałem... nie działa...

Mam w sumie chyba rozwiązanie. Obliczenia zrobie po stronie skryptu php i prześlę gotowego stringa z liczbami oddzielonymi jakimś znakiem. Następnie w js rozdzielę te cyfry i powinno zadziałać :)

Ale mimo wszystko, fajnie by było gdyby ktoś napisał metodę jak przesłać wynik skryptu bezpośrednio do zmiennej...

0
ŁF napisał(a):

Ajax domyślnie działa asynchronicznie. Nie możesz odwołać się do niepobranych jeszcze danych, a właśnie tak robisz.
Popatrz na to:

$.ajax({
url: "kod.php",
cache: false, 
data: {
id: szkolenieVal,
kod: kodVal
},
success: function (response) {
alert("Tutaj dalsze obliczenia na wartości " + response);
},
error: function () { alert("Wystąpił błąd podczas pobierania danych."); },
});

Zadziałało... zajebiste rozwiązanie :)

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