• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pobieranie zmiennych z PHP do JQuery [JS/jQuery, AJAX, PHP]

Object Storage Arubacloud
0 głosów
711 wizyt
pytanie zadane 20 listopada 2019 w JavaScript przez Bartx Bywalec (2,120 p.)

Witajcie, mam połączenie AJAX i chciałbym aby po wykonaniu kodu PHP zwracane były zmienne z PHP do jQuery. Dokładniej: chcę aby zmienne "opt1_proc" itd. zwracało do jQuery jako zmienna jQuery.

Kod HTML i jQuery

<h1>Ankieta:</h1>
    <h4>Kliknij i zobacz wyniki</h4>
    <div id="ankieta">
        <div id="opt1" class="opcja">Opcja 1</div>
        <div id="opt2" class="opcja">Opcja 2</div>
        <div id="opt3" class="opcja">Opcja 3</div>
        <div id="opt4" class="opcja">Opcja 4</div>
    </div>
    <div id="text"></div>
    <script src="https://code.jquery.com/jquery-3.4.1.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.form/4.2.2/jquery.form.min.js" integrity="sha384-FzT3vTVGXqf7wRfy8k4BiyzvbNfeYjK+frTVqZeNDFl8woCbF0CYG6g2fMEFFo/i" crossorigin="anonymous"></script>
    <script type="text/javascript">
        $("#form_lat").ajaxSubmit({url: 'check.php', type: 'get'})
        $(document).ready(function()
        {
            $('.opcja').click(function()
            {
                $(".opcja").off('click');
                var name = this.id;
                $.get("check.php", { name : name }, function(res){
                    // Wynik
            });
        });
        });
    </script>

Kod PHP:

<?php

    $name = $_GET['name'];
    if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) &&
    $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest'){
        $polaczenie = mysqli_connect("localhost","root","","ankiety");
            $zapytanie = mysqli_query($polaczenie, "UPDATE ankieta1 SET $name = $name + 1 WHERE control = 0");
        mysqli_close($polaczenie);
        $polaczenie = mysqli_connect("localhost","root","","ankiety");
            $zapytanie = mysqli_query($polaczenie, "SELECT opt1, opt2, opt3, opt4 FROM ankieta1");
            while($wiersz = mysqli_fetch_assoc($zapytanie)){
                $opt1 = $wiersz['opt1'];
                $opt2 = $wiersz['opt2'];
                $opt3 = $wiersz['opt3'];
                $opt4 = $wiersz['opt4'];
            };
        mysqli_close($polaczenie);
        
        $opt1_proc = ($opt1 / ($opt1 + $opt2 + $opt3 + $opt4)) * 100 . "%";
        $opt2_proc = ($opt2 / ($opt1 + $opt2 + $opt3 + $opt4)) * 100 . "%";
        $opt3_proc = ($opt3 / ($opt1 + $opt2 + $opt3 + $opt4)) * 100 . "%";
        $opt4_proc = ($opt4 / ($opt1 + $opt2 + $opt3 + $opt4)) * 100 . "%";
        echo $opt1_proc . "<br>" . $opt2_proc . "<br>" . $opt3_proc . "<br>" . $opt4_proc;
    }
    else{
        echo 'To nie jest połączenie AJAX';
    }
?>

 

1 odpowiedź

+1 głos
odpowiedź 20 listopada 2019 przez Milesq Nałogowiec (32,020 p.)
1) Co masz na myśli pisząc 'zmienna JQuery'?

2) Zapoznaj się z formatem danych JSON. Serwer może zwracać dane w formacie json, a ty w JS'ie możesz wysłać żądanie ajax (np. przez fetch) i parsować dane które dostaniesz JSON.parse
komentarz 21 listopada 2019 przez Bartx Bywalec (2,120 p.)
1) Mam na myśli zwykłą zmienną w JavaScript, a napisałem jQuery bo wolałbym aby wartość do tej zmiennej była uzyskana poprzez składnie jQuery nie JavaScript.

2) Próbowałem dekodowania JSON i nie działało, zwracało wartość undefined. Mógłbyś powiedzieć coś więcej o JSON.parse?
komentarz 21 listopada 2019 przez Milesq Nałogowiec (32,020 p.)

1) Jquery to biblioteka więc nie wprowadza nowej składni ;) no i powinno się od niej raczej odchodzić (https://www.youtube.com/watch?v=JoUrZlcdoFw)

2) Tak jak pisałem, serwer może zwrócić wartość w jsonie (nie ważne jakiego języka używasz, serwer udostępnia api a ty możesz wysłać zapytanie np na adres

twójserwer.com/user/3

i dostajesz json'a np.

{
    "id": 3,
    "name": "lorem ipsum"
}

I zmienną w której masz zapisany ten ciąg znaków, wysyłasz do funkcji JSON.parse, funkcja ta zwróci obiekt z polem id(o wartości 3) oraz name (o wartości lorem ipsum).

Jeśli zwraca ci undefined to "prześledź trasę" jaką pokonują dane i zobacz na jakim etapie coś się krzaczy. Czyli masz serwer php, i na endpoincie /users spodziewasz się zobaczyć json'a. Jeśli widzisz to spróbuj wyświetlić go przez przeglądarkę w konsoli, wykorzystując Js

Podobne pytania

0 głosów
1 odpowiedź 224 wizyt
pytanie zadane 31 października 2017 w JavaScript przez sc4rface Dyskutant (7,710 p.)
0 głosów
3 odpowiedzi 991 wizyt
pytanie zadane 16 października 2017 w JavaScript przez Kazuhiro Użytkownik (910 p.)
0 głosów
2 odpowiedzi 3,903 wizyt
pytanie zadane 15 listopada 2017 w JavaScript przez Pytam_PL Użytkownik (520 p.)

92,566 zapytań

141,420 odpowiedzi

319,614 komentarzy

61,952 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...