114 votes

Exécuter la fonction PHP avec onclick

Je recherche une solution simple pour appeler une fonction PHP uniquement lorsque un lien est cliqué.

PHP:

function removeday() { ... }

HTML:

Supprimer

MISE À JOUR: le code HTML et PHP sont dans le même fichier PHP

173voto

Michael Calkins Points 3927

Tout d'abord, comprenez que vous avez trois langages qui fonctionnent ensemble :

  • PHP : Il ne s'exécute que côté 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 présume que votre fichier ressemble à quelque chose comme ceci :

<!DOCTYPE HTML>
<html>

Bonjour !
<a href='index.php?hello=true'>Exécuter une fonction PHP</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é, "Devrais-je exécuter ce script pour cet utilisateur ou non ?".

Si vous ne voulez pas rafraîchir la page, vous pouvez faire une requête à PHP sans rafraîchir via une méthode appelée Asynchronous JavaScript and XML (AJAX).

C'est quelque chose que vous pouvez rechercher sur YouTube cependant. Il suffit de rechercher "jquery ajax"

Je recommande Laravel à toute personne commençant pour bien démarrer : http://laravel.com/

46voto

devo Points 5822

En javascript, créez une fonction ajax,

function myAjax() {
      $.ajax({
           type: "POST",
           url: 'votre_url/ajax.php',
           data:{action:'call_this'},
           success:function(html) {
             alert(html);
           }

      });
 }

Ensuite, appelez depuis html,

Supprimer

Et dans votre ajax.php,

if($_POST['action'] == 'call_this') {
  // appeler removeday() ici
}

13voto

Vamps Points 167

Cela peut être fait et avec un code PHP plutôt simple si c'est votre bouton

`

le code est appelé lorsque le bouton est cliqué et que le formulaire est soumis.

`

11voto

A.O. Points 1454

Vous devrez faire cela via AJAX. Je recommande fortement d'utiliser jQuery pour vous faciliter la tâche....

$("#idOfElement").on('click', function(){

    $.ajax({
       url: 'pathToPhpFile.php',
       dataType: 'json',
       success: function(data){
            //données retournées par php
       }
    });
)};

http://api.jquery.com/jQuery.ajax/

4voto

Kamil Kiełczewski Points 6496

Solution sans rechargement de page

Jours

  Supprimer

  async function removeday(e) {
    e.preventDefault(); 
    document.body.innerHTML+= '<br>'+ await(await fetch('?remove=1')).text();
  }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X