Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

94
Views
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!

about 4 years ago · Santiago Trujillo
2 answers
Answer question

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"); }); });
about 4 years ago · Santiago Trujillo Report

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.

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!