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!