Je cherche une solution simple pour appeler une fonction PHP uniquement lorsque une étiquette est cliquée.
PHP:
function removeday() { ... }
HTML:
<a href="" onclick="removeday()" class="deletebtn">Delete</a>
MISE À JOUR: le code html et le code PHP sont dans le même fichier PHP
Tout d'abord, comprenez que vous avez trois langues qui travaillent ensemble :
PHP : Il est exécuté uniquement par le serveur et répond aux requêtes telles que cliquer sur un lien (GET) ou soumettre un formulaire (POST).
HTML & ; JavaScript : Ils ne s'exécutent que dans le navigateur de quelqu'un (à l'exception de NodeJS).
Je suppose que votre fichier ressemble à quelque chose comme :
<!DOCTYPE HTML>
<html>
<?php
function runMyFunction() {
echo 'I just ran a php function';
}
if (isset($_GET['hello'])) {
runMyFunction();
}
?>
Hello there!
<a href='index.php?hello=true'>Run PHP Function</a>
</html>
Parce que PHP ne répond qu'aux requêtes (GET, POST, PUT, PATCH, et DELETE via $_REQUEST), c'est 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 pas?" ;.
Si vous ne souhaitez pas rafraîchir la page, vous pouvez envoyer une requête à PHP sans rafraîchir la page via une méthode appelée AJAX (Asynchronous JavaScript and XML).
C'est quelque chose que vous pouvez rechercher sur YouTube. Cherchez simplement "jquery ajax" ;
Je recommande Laravel à toute personne débutante pour bien commencer : http://laravel.com/
En javascript, faites une fonction ajax,
function myAjax() {
$.ajax({
type: "POST",
url: 'your_url/ajax.php',
data:{action:'call_this'},
success:function(html) {
alert(html);
}
});
}
Puis appeler depuis le html,
<a href="" onclick="myAjax()" class="deletebtn">Delete</a>
Et dans votre ajax.php,
if($_POST['action'] == 'call_this') {
// call removeday() here
}
Vous devrez le faire via AJAX. Je vous recommande fortement d'utiliser jQuery pour vous faciliter la tâche. ....
$("#idOfElement").on('click', function(){
$.ajax({
url: 'pathToPhpFile.php',
dataType: 'json',
success: function(data){
//data returned from php
}
});
)};