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

Ustawienie flagi w PHP przez AJAX

VPS Starter Arubacloud
0 głosów
215 wizyt
pytanie zadane 17 marca 2018 w JavaScript przez Honter Użytkownik (690 p.)

Witam,

Pracuję nad systemem rezerwacji w ramach projektu na zajęcia. Formularz rezerwacji 'pojawia się' nad zawartością strony w ramach <div> zwanego 'overlay', po wciśnięciu przycisku 'Booking' na pasku. Jestem kompletnie nowy jeżeli chodzi o AJAX'a, a sprawa wygląda następująco: Chcę sprawdzić czy zmienna sesyjna 'loggedIn' ma wartość 'true', jeżeli tak to formularz wyświetla się normalnie (do tego momentu wszystko działa). Natomiast jeżeli ma wartość 'false', po wciśnięciu przycisku 'Booking' użytkownik powinien zostać przekierowany na stronę 'sign_in.php'. W jaki sposób powinienem przekazać zmienną/flagę, że przycisk został naciśnięty, do PHP w pliku 'index.php' (tam znajduje się formularz)? Wiem, że wymaga to użycia AJAX'a aby kod JS wysłał dane do PHP.

Funkcja 'on()' wyświetlająca formularz po wciśnięciu przycisku 'Booking' na pasku:

function on() {
    $.post("index.php",{bOpen: true});
    document.getElementById("overlay").style.display = "flex";
}

Moja próba implementacji AJAX'a zakończyła się niepowodzeniem, chociaż ze strony logicznej wszystko wydaje się być ok. Funkcja JS on() ustawia zmienną PHP - $_POST['bOpen'], w pliku "index.php" na wartość true. Następnie formularz rezerwacji jest wyświetlany.

Fragment kodu pliku 'index.php':

<div id="overlay">
  	<div id="booking-form-main">
      <?php
      if ($_SESSION['loggedIn'] == true){

TUTAJ ZNAJDUJE SIĘ KOD FORMULARZA zamknięty w echo

}else if (isset($_POST['bOpen'])){
          header('Location: sign_in.php');
          unset($_POST['bOpen']);
          exit();
        }
      ?>

      <div id="close-x" onclick="off()">
        <img src="images/close-cross2.png" />
      </div>
    </div>
  </div>

W pliku "index.php", kod PHP sprawdza, czy zmienna sesyjna 'loggedIn' ma wartość true i wyświetla formularz (ta część działa). W przeciwnym razie sprawdza czy zmienna $_POST['bOpen'] jest ustawiona, jeżeli tak, to wysyła użytkownika na stronę logowania.

Plik 'functions.js' w którym znajduje się funkcja 'on()' jest na pewno dołączony prawidłowo, gdyż formularz rezerwacji wyświetla się tak jak powinien, kiedy użytkownik jest zalogowany.

Z góry dziękuję za pomoc!

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 314 wizyt
pytanie zadane 2 września 2018 w JavaScript przez Ventrae Nowicjusz (180 p.)
+1 głos
1 odpowiedź 255 wizyt
0 głosów
1 odpowiedź 755 wizyt
pytanie zadane 6 maja 2017 w JavaScript przez Bakr Mądrala (6,850 p.)

92,964 zapytań

141,929 odpowiedzi

321,162 komentarzy

62,298 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!

...