Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

102
Vistas
Publicar datos ajax con clase en lugar de ID

Tengo un formulario generado por PHP:

 <form id="change_status_form" name="change_status_form"> <input name="booking_int" type="hidden" value="'.$upcoming_bookings[$x]['booking_int'].'"> <select name="booking_status" onchange="change_status();"> <option selected value="0"> Not Yet Arrived </option> <option value="1"> Seated </option> <option value="4"> Cancelled </option> <option value="5"> No Show </option> </select>

esto enviará los datos sobre el cambio a ajax:

 function change_status() { $.post('dash_includes/dash_change_booking_status.php', { booking_status: change_status_form.booking_status.value, booking_int: change_status_form.booking_int.value }, function(output) { $('#all_bookings_div').load('dash_includes/dash_display_all_bookings.php').fadeIn("slow"); }); }

Una vez que se envíe, publicará los datos en dash_change_booking_status.php. Esto funciona muy bien una vez, pero necesito repetir el formulario varias veces, sin saber cuántas veces. Cuando hago esto, el ajax solo funcionará en el primero.

Creo que esto tiene que ver con la identificación del formulario y que debería cambiarlo a clase. ¿Alguien puede decirme cómo a) cambiar la clase de los formularios yb) cómo publicar los datos?

En una nota al margen, si agrego al final de mi formulario, ¡deja de publicarlo!

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Según su pregunta, parece que está generando contenido dinámicamente y funciona solo la primera vez. El siguiente código debería funcionar sin involucrarse en la clase o la identificación. ¿Puedes reemplazar <select name="booking_status" onchange="change_status();"> con <select name="booking_status" class = 'booking_status'>

 $(document).on("change", "select.booking_status", function(){ var $form = $(this).parents('form:first'); $.post('dash_includes/dash_change_booking_status.php', { booking_status: $form.find("select[name='booking_status']").val(), booking_int: $form.find("input[name='booking_int']").val() }, function(output) { $('#all_bookings_div').load('dash_includes/dash_display_all_bookings.php').fadeIn("slow"); }); });
over 4 years ago · Santiago Trujillo Denunciar

0

Simplemente podría cambiar el $('#booking_status') a $('.booking_status') pero luego tendrá múltiples valores para su consulta. Debe envolver cada formulario individual en una clase contenedora o identificación única

 <form id="form1"> <input type="text" class="booking_status"> </form>

Y luego obtenga los datos usando:

 $('#form1 .booking_status').val()

Puede pasar la identificación del formulario a su función onchange.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda