jQuery(document).ready(function ($) {
var form = $('#booking-form'),
loading = $('#form-loading'),
content = $('#form-content'),
message = $('#form-message');
form.on('submit', function (e) {
e.preventDefault();
// Affiche le loader
loading.css({
paddingTop: Math.round(form.height() / 2) + 'px'
}).removeClass('hide');
$.ajax({
type: 'POST',
url: 'script.php',
data: form.serialize(),
dataType: 'json',
success: function (data) {
loading.fadeOut('fast', function () {
$(this).addClass('hide').show();
});
// ❌ ERREURS DE VALIDATION
if (data.code === 'failed') {
$('.error-message', form).remove();
data.fields.reverse();
for (var i in data.fields) {
$('[name=' + data.fields[i].name + ']', form)
.trigger('focus')
.parent('div')
.append(
$('
')
.addClass('error-message')
.html(data.fields[i].message)
);
}
}
// ✅ SUCCESS
else if (data.code === 'success') {
content.fadeOut('fast', function () {
// Numéro de réservation
var num = $('#reservation-number');
num.text(data.reservation_number);
// E-mail
var email = $('#textm').val(); // récupère le champ du formulaire
var emailDisplay = $('#reservation-email');
emailDisplay.text(email);
message.removeClass('hide').hide().fadeIn();
});
}
},
error: function () {
loading.addClass('hide');
alert("Erreur serveur. Merci de réessayer.");
}
});
});
/* ==========================
DATE PICKER
========================== */
$('#date-from, #date-to', form).dateTimePicker({
paging: ['', ''],
picker: ['date'],
format: 'd/m/Y',
filter: function (date) {
var d = new Date();
return date.getTime() >= d.getTime();
},
filter_show: function (date) {
var d = new Date();
return date.getYear() > d.getYear() ||
(date.getYear() == d.getYear() && date.getMonth() >= d.getMonth());
}
}).dateTimePickerRange();
/* ==========================
SELECT STYLE
========================== */
$('select', form).styleSelect({
class_wrap: 'ul-dropdown-wrap',
});
/* ==========================
GROUP CLICK UI
========================== */
var groups = $('.group', form).not('.submit');
groups.on('click', function () {
groups.removeClass('active');
$(this).addClass('active');
});
$('#name').trigger('click').trigger('focus');
});