Cómo hacer que un botón de HTML ejecute un método de un objeto php

Home / Cómo hacer para... / Cómo hacer que un botón de HTML ejecute un método de un objeto php

Un alumno del curso de PHP Orientado a Objetos me hizo esta pregunta:

Necesito hacer que un botón o link de mi HTML ejecute un méthodo de un objeto php.

Intenté lo siguiente pero sin éxito:
<a href=”<?php $objeto->Método() ?>”> Reservar </a>
La pregunta encerraba una confusión respecto del modelo de ejecución de PHP:
Lo que está en HTML es código que ejecuta del lado del cliente, mientras que php ejecuta del lado del servidor.
 
Es simple de ver esto si hacés lo siguiente: cargá la página que muestra ese botón (a través de un navegador) y fijate el código fuente (Ctrl+U o botón derecho “Ver código fuente”).
Lo que vas a ver es algo como:
<a href="XXX"> Reservar </a>

Lo que está en rojo  es la salida del método $objeto->Metodo(). 

Por ejemplo, si $objeto->Metodo() tiene una definición como esta:
 
function Metodo()
{
   echo "reservar.php";
}
Lo que vas a ver en el HTML es 
<a href="reservar.php"> Reservar </a>

La solución pasa por tener dos archivos php diferentes:

  1. Uno para mostrar el botón
  2. Otro para ejecutar el método
De hecho, el primer archivo podría ser puro HTML (Depende de lo que vayas a querer hacer).
El segundo será seguramente el que efectivamente haga la reserva (Guardando en la base de datos o lo que sea).
En definitiva, el HTML sería algo como:
<a href="reservar.php?id=1"> Reservar </a>

Y el php (reservar.php) sería algo como:

<?php

$objeto = new Clase();
$objeto->Metodo( $_GET['id'] );

mchojrin

CEO at Leeway
Mauro es Lic. en Ciencias de la Computación.
Su carrera como docente de programación se inició en el año 1997 en la Escuela Técnica ORT.
Actualmente coordina el desarrollo de proyectos web en Leeway y los cursos dictados en la Leeway Academy

One Comment

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *