Business
Jobs
  • About Us
  • Solutions
    • Candidates
      Highly qualified candidates in 48h.
    • Assessments
      500+ technical and psychological assessments, plus anti-fraud system.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Pay in 15+ LATAM countries without setting up a local entity.
  • Pricing
  • Jobs

0

353
Views
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.

about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

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