Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

413
Visualizações
JavaScript event.preventDefault() enviar datos del botón en _POST

Hay algo en lo que parece que no puedo encontrar documentación:

Tengo este formulario con varios botones. Los botones tienen sus propias acciones asociadas y el botón Enviar está destinado a enviar datos para su almacenamiento. Todas las acciones se manejan en PHP en el lado del servidor.

La razón principal para enviar el formulario con XMLHttpRequest es para evitar que la página se vuelva a cargar para el cliente.

 <form action="/path/to/action.php" method="post" onsubmit="return submitForm(event)"> <input type="text" name="comment"> <button name="action" value="new_action">Action</button> <!-- more fields & buttons ... --> <input type="submit" name="submit" value="submitted"> </form>

La función submitForm() es así:

 function submitForm(event) { event.preventDefault(); var data = new FormData(event.target); console.log([...data]); var request = new XMLHttpRequest(); request.open("POST", event.target.getAttribute("action"), true); request.send(data); request.onreadystatechange = function() { if (request.readyState === 4 && request.status === 200) { document.open(); document.write(request.responseText); document.close(); } } return false; }

Todo funciona como se esperaba excepto un detalle. Debido a preventDefault() o al return false en onsubmit , los valores de envío/botón no se muestran en la matriz $_POST en el lado del servidor.

Necesito estos valores para que cuando se haga clic en los botones, se activen ciertas acciones, pero solo si se hizo clic en los botones asociados y están en $_POST .

Hasta ahora no he podido encontrar cómo y por qué esto funciona como lo hace. ¿Alguien tiene información de fondo sobre esto o una solución?

Obviamente, podría agregar una función onclick a los botones que agrega manualmente su valor a los datos enviados si se hace clic, pero me parece que no debería ser necesario.

over 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Assistente virtual