Quiero almacenar valores de nombre, día seleccionado y película seleccionada en datos de reserva. Luego, quiero que los datos de la reserva pasen ajax como datos para poder obtenerlos en mi controlador, leerlos e insertarlos en mi base de datos.
Este es mi código:
var reservationData = {"name": name, "selectedMovie": selectedMovie, "selectedDay": selectedDay}; console.log(reservationData); var confirmReservation = $('.confirm-reservation'); confirmReservation.on('click', function(){ $.ajax({ url: '/drupal/movie-reservation', type: 'GET', cache: false, data:{result: JSON.stringify(reservationData)}, success: function(data){ alert(data); } });Cada vez que mi nombre, la película seleccionada y el día seleccionado obtienen su valor, quiero que ese valor también se almacene en los datos de reserva. ¿Cómo puedo hacer eso? ¡Gracias por adelantado!
Su variable de datos de reserva actual es un objeto, no una matriz. Seguirá actualizando/sobrescribiendo las mismas propiedades. Por lo tanto, necesitará una matriz para insertar estos datos de reserva.
Puede lograrlo definiendo arrReservationData como una matriz que contiene objetos.
Cada clic en .confirm-reservation enviará un nuevo objeto objNewReservationData a través de ajax a su controlador. El objeto de resultado devuelto se enviará a arrReservationData .
var arrReservationData = [], var objNewReservationData = { "name": name, "selectedMovie": selectedMovie, "selectedDay": selectedDay }, confirmReservation = $('.confirm-reservation'); confirmReservation.on('click', function(){ $.ajax({ url: '/drupal/movie-reservation', type: 'GET', cache: false, data: {result: JSON.stringify(objNewReservationData)}, success: function(data){ let objResponse = { "name": data.name, "selectedMovie": data.selectedMovie, "selectedDay": data.selectedDay }; arrReservationData.push(objResponse); // do stuff with arrReservationData, like storing in a database } });