• 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
706 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ź 220 wizyt
pytanie zadane 31 października 2017 w JavaScript przez sc4rface Dyskutant (7,710 p.)
0 głosów
3 odpowiedzi 974 wizyt
pytanie zadane 16 października 2017 w JavaScript przez Kazuhiro Użytkownik (910 p.)
0 głosów
2 odpowiedzi 3,879 wizyt
pytanie zadane 15 listopada 2017 w JavaScript przez Pytam_PL Użytkownik (520 p.)

92,455 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...