Przykład obsługi rezerwacji po obu stronach – klient serwer
Javascript
// Po rezerwacji - zapianiu w bazie - zaznacza komórkę jako zarezerwoaną var renderRezerwacja = function( obj, result ) { if( result.error ) { alert(result.error); } else { $( obj.box ).addClass('reserved').addClass('z' + obj.z_id ); $( obj.box ).attr('data-id', result.id); var user = $('#user-id option:selected').text(); var cel = $('#cel').val(); $( obj.box ).attr('title', user + " - " + cel); } }; // Rezerwuje termin - zapytanie AJAX do bazy var setRezerwacja = function( obj ){ var url = '/ajax/set-rezerwacja.php'; var data_obj = { tz : obj.tz, user_id : obj.user_id, }; var data = JSON.stringify(data_obj); //alert(data); exit; $.ajax({ url : url, type : 'post', dataType : 'json', data : data, success : function(result){ renderRezerwacja( obj, result ) }, error : function(e){ alert("Błąd połączenia AJAX"); } }); }; // Przygotowanie danych i wywołanie funkcji var onClickDay = function(){ if( $(this).hasClass("cell") ) { var obj = {}; obj.tz = $(this).attr('data-tz'); obj.user_id = $('#user-id option:selected').val(); obj.box = this; setRezerwacja(obj); } return false; }; // Przechwycenie kliknięcia $('.day').on('click', onClickDay );
PHP – set-rezerwacja.php
header("Content-Type: text/html; charset=utf-8"); session_start(); date_default_timezone_set("Europe/Warsaw"); error_reporting(E_ALL); ini_set("display_errors", 0); if($_SESSION['uid']) { $DB = new mysqli(DB_HOST, DB_USER, DB_PASSWD, DB_NAME); if(mysqli_connect_error($DB)) { throw new exception("Błąd połączenia z bazą"); } // Połączenie AJAX if( $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest' ) { $input = json_decode( file_get_contents("php://input") ); $tz = $input->tz ? (int) $input->tz : null ; $user_id = $input->user_id ? (int) $input->user_id : null ; $cel = $input->cel ? htmlspecialchars($input->cel) : null ; // Wymagane dane if( $tz && $user_id ) { require_once(CLASS_DIR."Rezerwacje.class.php") ; $data = date("Y-m-d", $tz); $u = new Rezerwacje(); $u->tz = $tz; $u->user_id = $user_id ; $u->cel = $cel ; $u->data = $data ; $u->inserted_by = $_SESSION['uid']; if($u->save() == 1) { result = $u->id; } else { $result['error'] = "Nie można zapisać rezerwacji"; } } } else { $result['error'] = "Błędne połączenie"; } echo json_encode( $result ); exit; } else { echo $result['error'] = "Brak uprawnień"; }