web-dev-qa-db-fra.com

Comment appeler un script/une fonction php sur un clic de bouton html

Avant que quelqu'un m'essaie de le faire ou le note, j'ai regardé partout sur Internet pour savoir comment faire cela (y compris la même question sur stackoverflow). Je suis nouvelle et j'ai beaucoup de difficulté à apprendre de nouveaux concepts, alors soyez tranquille, s'il vous plaît.

Ce que je veux faire, c'est appeler un script php/une fonction sur un clic de bouton. J'ai cette exécution dans WAMP si cela aide. Voici mon code:

<?php include 'the_script.php'; ?>

<button type="button" onclick="the_function()">Click Me</button>

the_script.php contient ceci:

the_function() {
    echo "You win";
}

Pourquoi ça ne marche pas? J'ai entendu dire que le bouton était côté client, etc. et PHP, côté serveur, ce qui signifie que vous ne pouvez pas associer les deux. Je sais que vous devez utiliser AJAX pour que cela fonctionne, mais je n’ai légitimement aucune idée de la façon de le faire. J'ai essayé de le googler, etc., mais je ne trouve rien. Je sais comment utiliser AJAX et appeler des événements avec, mais je ne sais toujours pas comment le faire appeler un script PHP.

Pouvez-vous s'il vous plaît rendre vos réponses aussi claires et simples que possible, je suis nouveau à ce sujet

Merci pour l'aide :)

MODIFIER ***

Pour une raison quelconque, partout où je vais, le code de chacun est différent. La façon dont on m'a enseigné AJAX est complètement différente. Pouvez-vous s'il vous plaît écrire de cette façon pour que je puisse comprendre? Merci, voici un exemple:

var request;

if (window.XMLHttpRequest) {
    request = new XMLHttpRequest();
} else {
    request = new ActiveXObject("Microsoft.XMLHTTP");
}

request.open('GET', 'file.php', true);

request.onreadystatechange = function() {

    if (request.readyState===4 && request.status===200) {
        do stuff
    }
}

request.send();
11
dspacejs

 

Essayez ceci:

<button type="button">Click Me</button>
<p></p>
<script type="text/javascript">
    $(document).ready(function(){
        $("button").click(function(){

            $.ajax({
                type: 'POST',
                url: 'script.php',
                success: function(data) {
                    alert(data);
                    $("p").text(data);

                }
            });
   });
});
</script>

Dans script.php

<?php 
  echo "You win";
 ?>
28
Priyank

Bien sûr, AJAX est la solution,

Pour exécuter une requête AJAX (pour plus de facilité, nous pouvons utiliser la bibliothèque jQuery).

Étape 1.

Inclure la bibliothèque jQuery dans votre page Web

une. vous pouvez télécharger la bibliothèque jQuery à partir de jquery.com et la conserver localement.

b. ou simplement coller le code suivant,

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>

Étape 2.

Appeler une fonction javascript en cliquant sur un bouton

<button type="button" onclick="foo()">Click Me</button>

Étape 3.

et enfin la fonction

 function foo () {
      $.ajax({
        url:"test.php", //the page containing php script
        type: "POST", //request type
        success:function(result){
         alert(result);
       }
     });
 }

il fera une demande AJAX à test.php chaque fois que vous cliquerez sur le bouton et alerterez la réponse.

Par exemple, votre code dans test.php est,

<?php echo 'hello'; ?>

alors il alertera "bonjour" chaque fois que vous cliquerez sur le bouton.

12
akhil.cs

Vous pouvez aussi utiliser 

   $(document).ready(function() {

    //some even that will run ajax request - for example click on a button

    var uname = $('#username').val();
    $.ajax({
    type: 'POST',
    url: 'func.php', //this should be url to your PHP file
    dataType: 'html',
    data: {func: 'toptable', user_id: uname},
    beforeSend: function() {
        $('#right').html('checking');
    },
    complete: function() {},
    success: function(html) {
        $('#right').html(html);
    }
    });

    });
And your func.php:

  function toptable()
 {
  echo 'something happens in here';
 }

J'espère que ça aide quelqu'un

5
Kumar

Utilisez jQuery.In la page HTML - 

<button type="button">Click Me</button>

<script>
$(document).ready(function() {
$("button").click(function(){
  $.ajax({
    url:"php_page.php", //the page containing php script
    type: "POST", //request type
    success:function(result){
    alert(result);
    }
  });
});
})
</script>

Page php - 

echo "Hello";
2
Sougata Bose
the_function() {

$.ajax({url:"demo_test.php",success:function(result){

   alert(result); // will alert 1

 }});

}

// test_demo.php

<?php echo 1; ?>

Remarques

  1. Inclure la bibliothèque jquery pour l’utilisation de jquery Ajax
  2. Conservez le fichier demo_test.php dans le même dossier que votre fichier javascript
0
Kiren Siva

Modifiez the_script.php comme ceci.

<script>
the_function() {
    alert("You win");
}
</script>
0
First understand that you have three languages working together.

PHP: est exécuté uniquement par le serveur et répond aux demandes, par exemple en cliquant sur un lien (GET) ou en soumettant un formulaire (POST) . HTML et Javascript: est exécuté uniquement dans le navigateur de quelqu'un (à l'exception de NodeJS) Je suppose que votre fichier ressemble à quelque chose comme:

<?php
function the_function() {
echo 'I just ran a php function';
 }

 if (isset($_GET['hello'])) {
  the_function();
  }
   ?>
  <html>
 <a href='the_script.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), vous devez exécuter une fonction php même si elles se trouvent 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 envoyer une requête à PHP sans l'actualiser via une méthode appelée Javascript asynchrone et XML (AJAX).

0
Priyank