• 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]

VPS Starter Arubacloud
0 głosów
802 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ź 228 wizyt
pytanie zadane 31 października 2017 w JavaScript przez sc4rface Dyskutant (7,710 p.)
0 głosów
3 odpowiedzi 1,118 wizyt
pytanie zadane 16 października 2017 w JavaScript przez Kazuhiro Użytkownik (910 p.)
0 głosów
2 odpowiedzi 3,996 wizyt
pytanie zadane 15 listopada 2017 w JavaScript przez Pytam_PL Użytkownik (520 p.)

92,973 zapytań

141,936 odpowiedzi

321,171 komentarzy

62,301 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.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...