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

0 głosów
306 wizyt
pytanie zadane 20 listopada 2019 w JavaScript przez Bartx Bywalec (2,100 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 (30,790 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,100 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 (30,790 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ź 193 wizyt
pytanie zadane 31 października 2017 w JavaScript przez sc4rface Dyskutant (7,710 p.)
0 głosów
3 odpowiedzi 737 wizyt
pytanie zadane 16 października 2017 w JavaScript przez Kazuhiro Użytkownik (910 p.)
0 głosów
2 odpowiedzi 2,772 wizyt
pytanie zadane 15 listopada 2017 w JavaScript przez Pytam_PL Użytkownik (520 p.)

87,946 zapytań

136,526 odpowiedzi

304,410 komentarzy

58,313 pasjonatów

Motyw:

Akcja Pajacyk

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

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...