Meilleure réponse
Aucun PHP nest un code de serveur backend, voici une excellente explication de stackexchange
Tout dabord, sachez que vous avez trois langues qui fonctionnent ensemble.
- PHP: est uniquement exécuté par le serveur et répond aux demandes telles que cliquer sur un lien (GET) ou soumettre un formulaire (POST).
- HTML et JavaScript: ne sexécute que dans le navigateur de quelquun (à lexclusion de NodeJS).
Je suppose que votre fichier ressemble à quelque chose comme :
function runMyFunction() {
echo "I just ran a php function";
}
if (isset($\_GET["hello"])) {
runMyFunction();
}
?>
Hello there!
Run PHP Function
Parce que PHP ne répond quaux requêtes (GET, POST, PUT, PATCH et DELETE via $ \_REQUEST), cest ainsi que vous devez exécuter une fonction PHP même si elles sont dans le même fichier. Cela vous donne un niveau de sécurité, "Dois-je exécuter ce script pour cet utilisateur ou non?".
Si vous ne souhaitez pas actualiser la page, vous pouvez faire une requête à PHP sans actualiser via une méthode appelée JavaScript asynchrone et XML (AJAX).
Cest quelque chose que vous pouvez rechercher sur YouTube. Il suffit de rechercher "jquery ajax"
Lien complet vers la citation:
Exécuter la fonction PHP avec onClick
Réponse
La meilleure façon de faire serait dexposer votre fonction PHP via un contrôleur sur votre application côté serveur. Le Javascript peut alors appeler la méthode en utilisant une bibliothèque comme Axios. Cela ressemblerait probablement à quelque chose comme ceci (Ceci est un exemple en 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);
}
}
?>
Ceci va lancer une requête HTTP vers le backend à / endpoint, que votre routeur doit acheminer vers la méthode `ThingController @ show`, qui retournera les données chargées à partir de la base de données, ou les données que vous voulez quelle transmette.
Cela va renvoyer les données de lappel à traiter par votre JS comme bon vous semble.