El atributo ACTION

Se utiliza en los formularios para definir la URL a la que se enviarán los datos del formulario cuando el usuario lo envíe.
El atributo action
se utiliza en la etiqueta <form>
para definir la URL a la que se enviarán los datos del formulario cuando el usuario lo envíe. Es esencial para procesar información en el servidor, como registros de usuarios, búsquedas, o actualizaciones de bases de datos. Sin este atributo, el formulario no sabrá a dónde enviar los datos.
Sintaxis básica
<form action="url-destino" method="método-HTTP"> <!-- Campos del formulario (inputs, botones, etc.) --> </form>
Parámetros clave:
-
url-destino
: Ruta del script o servicio que procesará los datos (ej:/procesar.php
,https://api.ejemplo.com/login
). -
method
: Método HTTP para enviar datos (GET
oPOST
). Por defecto esGET
.
Casos de uso comunes
Enviar datos a un script PHP
<form action="registro.php" method="POST"> <input type="text" name="usuario" placeholder="Nombre de usuario"> <input type="password" name="contraseña" placeholder="Contraseña"> <button type="submit">Registrarse</button> </form>
Los datos se envían a registro.php
usando el método POST
.
Enviar datos a una API externa
<form action="https://api.ejemplo.com/login" method="POST"> <input type="email" name="email" placeholder="Correo electrónico"> <input type="password" name="password" placeholder="Contraseña"> <button type="submit">Iniciar sesión</button> </form>
Enviar datos a la misma página (recarga)
Si action
está vacío o no se especifica, los datos se envían a la URL actual:
<form method="GET"> <input type="search" name="q" placeholder="Buscar..."> <button type="submit">Buscar</button> </form>
Al enviar, la URL se actualiza a ?q=texto-buscado
.
Funcionamiento con GET
vs POST
GET |
POST |
---|---|
Los datos se envían en la URL (ej: ?usuario=juan ). |
Los datos se envían en el cuerpo de la solicitud (no visibles en la URL). |
Ideal para búsquedas o filtros. | Ideal para datos sensibles (contraseñas, tarjetas). |
Límite de longitud (~2048 caracteres). | Sin límite de longitud. |
Mejores prácticas
Usa HTTPS en la URL:
Para proteger datos sensibles, asegúrate de que la URL en action
sea segura:
<form action="https://ejemplo.com/procesar" method="POST">
Valida datos en el servidor:
El atributo action
solo envía datos; no valida entradas. Usa PHP, Node.js, etc., para verificar la información.
Evita action="#"
:
Es redundante (equivale a no incluir el atributo). En su lugar, usa JavaScript para manejar envíos dinámicos.
Errores comunes
Rutas incorrectas:
Si la ruta en action
no existe, el formulario no funcionará:
<!-- Incorrecto (ruta relativa mal escrita) --> <form action="procesar.php" method="POST">
<!-- Si procesar.php no está en el mismo directorio -->
Olvidar el método HTTP:
Si no se especifica method
, el navegador usará GET
por defecto (poco seguro para datos sensibles).
Confiar solo en el cliente:
Los datos pueden manipularse fácilmente. Siempre valida y sanitiza en el servidor.
Ejemplo avanzado: Formulario con subida de archivos
Para subir archivos, el formulario debe incluir enctype="multipart/form-data"
:
<form action="/subir-imagen" method="POST" enctype="multipart/form-data"> <input type="file" name="imagen" accept="image/*"> <button type="submit">Subir</button> </form>
Ejemplo con JavaScript (envío asíncrono)
Puedes usar fetch
para enviar datos sin recargar la página:
<form id="miFormulario"> <input type="email" name="email" placeholder="Correo"> <button type="submit">Suscribirse</button> </form> <script> document.getElementById("miFormulario").addEventListener("submit", (e) => { e.preventDefault(); // Evita el envío tradicional const formData = new FormData(e.target); fetch("https://api.ejemplo.com/suscribir", { method: "POST", body: formData, }) .then(response => response.json()) .then(data => console.log(data)); }); </script>
Conclusión
El atributo action
es clave para:
-
Enviar datos a servicios backend.
-
Integrar formularios con APIs o bases de datos.
-
Definir la lógica de procesamiento de la información.
Ejemplo final:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> </head> <body> <form action="https://seguro.ejemplo.com/login" method="POST"> <input type="email" name="email" placeholder="Correo" required> <input type="password" name="password" placeholder="Contraseña" required> <button type="submit">Iniciar sesión</button> </form> </body> </html>
¡Implementa action
correctamente para que tus formularios funcionen de manera eficiente y segura!