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

Ustawienie zmiennej sesji przez ajax (chyba)

0 głosów
357 wizyt
pytanie zadane 2 września 2018 w JavaScript przez Ventrae Nowicjusz (180 p.)

Potrzebuję ustawić $_SESSION['Year'] w php na wartości konkretne 2018, 2019... po zdarzeniu onclick a następnie przeładować okienko. Korzystam w projekcie z jQuery. Wiem, że do tego mniej więcej służy ajax ale nigdy go nie rozumiałem. Kiedyś nawet coś napisałem przy jego użyciu podobnego, wyglądało to tak:
 

$.ajax({
                url: 'eq_ajax.php',	
		type: 'POST',							
		data: {x:x, y:y}, 	
                success: function (response) {
					//alert(response);
					window.location.reload();
                }
            });

działało, ale nie do końca to rozumiem. Mógłby ktoś pomóc? Parę słów wstępu w tym kierunku też by było miło ;/

1 odpowiedź

0 głosów
odpowiedź 2 września 2018 przez Tomek Sochacki Ekspert (227,490 p.)

Ajax to ogólne określenie technologii, która pozwala na wymianę danych między tzw. frontem i back-endem, a dokładniej mówiąc między środowiskiem klienta (przeglądarka), a serwerem. Są też inne, np. WebSocket, ale wszystko zależy od tego co dokładnie potrzeba zrobić.

A co do kodu:

(1)  $.ajax({
(2)    url: 'eq_ajax.php', 
(3)    type: 'POST',                           
(4)    data: {x:x, y:y},   
(5)    success: function (response) {
(6)       window.location.reload();
(7)    }
(8)  });

i teraz po kolei:

  1. tutaj wywołujemy metodę ajax obiektu jQuery, zapisywanego najczęściej jako $.
  2. tu wskazujemy cel naszgo requesta, Ty wskazujesz konkretny plik PHP, który ma zostać odpalony na sewerze
  3. ustawiamy metodę http, jest ich kilka, get, post, put, delete, patch... wybierasz w zależności od konkretnego celu.
  4. tutaj wskazujemy dane, które zostaną dołączone do requesta, jeśli dobrze pamiętam to jQuery już za Ciebie robi ich odpowiednią "obróbkę" aby były dobre do wysłania, więc Ty mozesz je podawać w formie normalnego obiektu JS.
  5. tutaj wskazujemy callback, czyli jaka funkcja ma zostać wywołana asynchronicznie gdy otrzymamy z serwerka status 200 i wszystko pójdzie oki. Response to odpowiedź z seerwera jaką dostaniesz po zakończeniu wymiany danych.
  6. tutaj wywołujesz przeładowanie strony po odebraniu danych z serwerka. Metoda reload bez żadnego parametru powoduje przeładowanie strony z cache dyskowego, a jeśli dodałbyś jej parametr TRUE to wymusiłoby to przeładowanie na nowo z serwera (tzw. force reload).
  7. 7 i 8 jest chyba jasne :)

Generalnie ja zawsze polecam osobom początkującym, aby choć raz samodzielnie "obrobiły" obiekt XMLHttpRequest i spróbowały pobawić się Promisami itp. po to, aby lepiej zrozumieć co tam pod spodem tak na prawdę się dzieje. A potem oczywiście najczęściej i tak korzysta się z bibliotek, albo jQuery albo mniejszych, dedykowanych właśnie do Ajax jak axios itp.

Podobne pytania

0 głosów
0 odpowiedzi 266 wizyt
pytanie zadane 17 marca 2018 w JavaScript przez Honter Użytkownik (690 p.)
+1 głos
2 odpowiedzi 251 wizyt
pytanie zadane 31 marca 2022 w PHP przez NoteDS Użytkownik (560 p.)
0 głosów
1 odpowiedź 743 wizyt
pytanie zadane 12 kwietnia 2019 w PHP przez Sinq Nowicjusz (120 p.)

93,599 zapytań

142,524 odpowiedzi

322,993 komentarzy

63,083 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

Kursy INF.02 i INF.03
...