Contenido del curso

Formulario de edición precargado desde base de datos

Resumen

Construir un formulario de edición en PHP requiere coordinar tres piezas: una ruta nueva, un método en el controlador y una vista que renderice los datos del registro. Aquí te muestro cómo conectar todo eso para que un usuario pueda editar un proyecto guardado en base de datos, sin perder lo que ya tienes funcionando en el listado.

¿Cómo se conecta el botón de editar con la ruta?

El punto de partida es el listado de enlaces, donde ya existe el botón de eliminar. Junto a él agregas un nuevo botón con un diseño propio que apunte a la acción de edición.

Ese botón necesita enviar el ID del registro como parámetro en la URL. Sin ese ID, el controlador no sabe qué fila traer de la base de datos. Reutilizas el mismo formulario y la misma estructura del botón de eliminar, cambias el destino y mantienes el envío del identificador.

¿Por qué se envía el ID en la URL al editar? Porque el controlador necesita saber exactamente qué registro consultar y mostrar. Sin el ID, la vista de edición no tendría datos que cargar.

Al hacer clic, el sistema responde que la ruta no existe. Eso es esperado: te indica el siguiente paso.

¿Cómo defines la ruta y el método del controlador?

En el archivo de rutas, después del bloque de creación, declaras una nueva entrada del tipo enlaces/edit que apunte al método de edición del controlador. Al actualizar el navegador, el error cambia: ahora el sistema te avisa que falta el método.

El método de edición vive en el controlador y necesita tres elementos básicos.

  • Un título para la vista, en este caso editar proyecto.
  • Una consulta a base de datos que recupere el registro por su ID.
  • Un require a la nueva vista de edición donde se renderiza el formulario.

No se trata de redirigir, sino de cargar la vista pasándole los datos consultados. Cuida el punto y coma final y la llave de cierre del método para evitar errores de sintaxis.

¿Qué cambia respecto al método de creación?

La creación parte de un formulario vacío. La edición parte de datos existentes. Por eso el método de edición ejecuta una consulta previa y entrega el registro a la vista antes de mostrar nada.

¿Cómo reutilizas la vista de creación para editar?

La forma más rápida es copiar la vista de creación y renombrarla como edit. Desde ahí ajustas los puntos clave del formulario.

  • Cambia el título visible a editar proyecto.
  • Sustituye el botón guardar por uno de actualizar.
  • Define la acción del formulario para que apunte al registro con el ID consultado, usando enlace['id'].

El detalle más importante está en cómo precargas los campos. En la creación usas una variable que recupera lo que el usuario envió por POST para conservar datos tras una validación fallida. En la edición necesitas una capa adicional: si esa variable está vacía, muestra el valor que viene de la base de datos.

Esa lógica se aplica tanto al campo título como al campo descripción y a la URL. Así el formulario respeta dos escenarios: cuando el usuario acaba de abrir la pantalla y cuando regresa de un intento de envío con errores.

¿Qué pasa si la variable POST está vacía al editar? Se carga el valor original desde la base de datos. Si tiene contenido, se respeta lo que el usuario escribió, manteniendo la validación intacta.

¿Qué confirma que la edición está lista para guardarse?

Al recargar la página y entrar al editor del registro con ID número cuatro, la URL se construye dinámicamente y los campos aparecen llenos con la información de ese proyecto.

Con eso completas tres de las cuatro funciones administrativas sobre la base de datos.

  • Leer los registros en el listado.
  • Eliminar un registro desde el botón correspondiente.
  • Visualizar la información lista para editar en un formulario precargado.

Falta el paso final: tomar los datos del formulario de actualizar y escribirlos de vuelta en la tabla. Ese es el siguiente movimiento natural en el CRUD y lo que conecta esta vista con un cambio real en la base de datos.

¿Ya tienes claro cómo separar la lógica entre el método de creación y el de edición en tu propio proyecto? Cuéntame en los comentarios cómo lo estás resolviendo.