Mejor respuesta
No PHP es código de servidor backend aquí hay una gran explicación de stackexchange
Primero, comprenda que tiene tres idiomas trabajando juntos.
- PHP: solo lo ejecuta el servidor y responde a solicitudes como hacer clic en un enlace (GET) o enviar un formulario (POST).
- HTML y JavaScript: solo se ejecuta en el navegador de alguien (excluyendo NodeJS).
Supongo que su archivo se parece a :
function runMyFunction() {
echo "I just ran a php function";
}
if (isset($\_GET["hello"])) {
runMyFunction();
}
?>
Hello there!
Run PHP Function
Como PHP solo responde a solicitudes (GET, POST, PUT, PATCH y DELETE a través de $ \_REQUEST), así es como debe ejecutar una función PHP aunque estén en el mismo archivo. Esto le brinda un nivel de seguridad, "¿Debo ejecutar este script para este usuario o no?".
Si no desea actualizar la página, puede realizar una solicitud a PHP sin actualizar a través de un método llamado JavaScript asíncrono y XML (AJAX).
Sin embargo, eso es algo que puedes buscar en YouTube. Solo busca "jquery ajax"
Enlace completo a la cita:
Ejecuta la función PHP con onClick
Respuesta
La mejor manera de hacer esto sería exponer su función PHP a través de un controlador en la aplicación del lado del servidor. El Javascript puede llamar al método usando una biblioteca como Axios. Probablemente se vería así (Este es un ejemplo de Laravelish):
//HTML
//JS
var handleClick = function(event) {
axios.get("/endpoint, {
params: {ID: 1234}
})
.then(function(response) {
});
};
//PHP
namespace \App\Http\Controlllers;
use \App\Thing;
use \App\Http\Controllers\Controller;
class ThingController extends Controller
{
public function show($id)
{
return Thing::find($id);
}
}
?>
Este va a disparar una solicitud HTTP al backend en / endpoint, que su enrutador debe enrutar al método `ThingController @ show`, que devolverá los datos cargados desde la base de datos, o cualquier dato que desee que pase.
Esto devolverá los datos de la llamada para que su JS los procese como mejor le parezca.