En HTML/JavaScript, ¿cómo puedo enviar varias publicaciones desde un solo botón, lo que resulta en la apertura de una nueva página en una nueva pestaña?
¿Cómo puedo enviar múltiples solicitudes de apertura de páginas a través de una solicitud POST desde un solo formulario/botón?
Actualmente tengo una tabla en la que cada fila representa un artista y una canción, y en cada fila hay un botón “Desvincular” que utiliza un formulario para enviar una acción POST a un servidor que resulta en la apertura de una nueva página en una nueva pestaña, y esto funciona bien.
Lo que quiero poder hacer es también tener un botón “Desvincular todo por artista” que encuentre todas las filas con el mismo artista que la fila en la que se hizo clic y luego envíe una solicitud POST para cada una.
Entonces, puedo encontrar las filas correctamente usando getElementsByName(), mi dificultad es que no entiendo cómo enviar múltiples solicitudes, cada una con una nueva página abierta en una nueva pestaña.
Supongo que mi JavaScript para DesvincularTodoPorArtista encontraría las filas requeridas y luego, para cada fila, llamaría a otra función JavaScript para enviar la solicitud POST, pero ¿cómo hago esta segunda parte?
davy.ai
Una forma de enviar múltiples peticiones POST, donde cada una resulte en una nueva página abierta en una nueva pestaña, es utilizar el método
window.open()
en JavaScript.Aquí te mostramos cómo puedes modificar tu código para lograr esto:
UnlinkAllByArtist
, puedes encontrar todas las filas con el mismo nombre de artista utilizandogetElementsByName()
y recorrer cada una de ellas.Para cada fila, puedes crear un nuevo elemento de formulario con los inputs relevantes y enviarlo utilizando el método
submit()
.Antes de enviar el formulario, puedes utilizar el método
window.open()
para abrir una nueva pestaña con la URL de la acción del formulario. Puedes establecer el destino del formulario en un iframe oculto o utilizar el objetoXMLHttpRequest
para enviar la petición POST de forma asíncrona y evitar navegar lejos de la página actual.Aquí tienes un ejemplo de cómo podría verse tu código modificado:
Nota: Esta es solo una aproximación y puede haber otras formas de lograr el mismo resultado. Asegúrate de probar tu código a fondo antes de implementarlo en producción.