diff --git a/vista/js/index.js b/vista/js/index.js index 3a1cddc..5fb5f39 100644 --- a/vista/js/index.js +++ b/vista/js/index.js @@ -142,52 +142,50 @@ document.addEventListener('DOMContentLoaded', function() { } } } - - // Función para validar y enviar el formulario - function validarYEnviarFormulario(e) { + async function validarYEnviarFormulario(e) { e.preventDefault(); - + if (seleccionados.length === 0) { mostrarMensaje('Por favor, seleccione al menos un asiento.'); return false; } - + const nombreCliente = document.getElementById('nombre_cliente').value.trim(); if (nombreCliente === '') { mostrarMensaje('Por favor, ingrese el nombre del cliente.'); return false; } - - // Preparar los datos para enviar - const asientosIds = seleccionados.map(asiento => asiento.id); - const datos = { - asientos: asientosIds, - nombre_cliente: nombreCliente - }; - - // Enviar los datos mediante fetch - fetch('../controlador/venta.php', { - method: 'POST', - headers: { - 'Content-Type': 'application/json' - }, - body: JSON.stringify(datos) - }) - .then(response => response.json()) - .then(result => { - if (result.success) { - // Redireccionar a la página de comprobante - window.location.href = result.redirect || 'comprobante.php'; - } else { - mostrarMensaje(result.mensaje || 'Error al procesar la venta', 'error'); - } - }) - .catch(error => { - console.error('Error:', error); - mostrarMensaje('Error de conexión con el servidor', 'error'); + + const formData = new FormData(); + formData.append('nombre_cliente', nombreCliente); + seleccionados.forEach(asiento => { + formData.append('asientos[]', asiento.id); }); - - return false; + + try { + const response = await fetch('../controlador/procesarVenta.php', { + method: 'POST', + body: formData + }); + + const responseText = await response.text(); // Capturar respuesta como texto para depurar + console.log('Respuesta del servidor:', responseText); + + // Intentar parsear como JSON + const data = JSON.parse(responseText); + + if (!data.success) { + mostrarMensaje(data.message || 'Error en la venta'); // Cambiar 'mensaje' a 'message' + return; + } + + mostrarMensaje('Venta confirmada con éxito', 'success'); + setTimeout(() => location.reload(), 2000); + + } catch (error) { + console.error('Error al enviar la venta:', error); + mostrarMensaje('Error de conexión con el servidor', 'error'); + } } // Función para mostrar mensajes