Appeler une fonction PHP en Javascript (Ajax) [Résolu/Fermé]

Signaler
Messages postés
677
Date d'inscription
samedi 6 octobre 2012
Statut
Membre
Dernière intervention
10 juin 2020
-
Messages postés
677
Date d'inscription
samedi 6 octobre 2012
Statut
Membre
Dernière intervention
10 juin 2020
-
Bonjour,

je cherche comment faire pour appeler (et récupérer le résultat d') une fonction php.
Par exemple, avec cette fonction:
function test($variable)
{
if(isset($variable)){
return "Non vide";
}else{
return "Vide";
}
}




En faisant des recherches, j'ai vu qu'il fallait utiliser Ajax, mais je ne sais pas comment l'utiliser.

Merci

3 réponses


Salut,

il faut essayer de lire un tutoriel. Si tu rencontre après des problèmes, tu peux toujours montrer ton code et demander conseil.

http://openclassrooms.com/courses/ajax-et-l-echange-de-donnees-en-javascript

Bonne soirée
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 76687 internautes nous ont dit merci ce mois-ci

Messages postés
677
Date d'inscription
samedi 6 octobre 2012
Statut
Membre
Dernière intervention
10 juin 2020
14
Bonjour,

je vais regarder (plutôt lire) ce tutoriel.
Je poste le résultat avec moi quand j'ai fini.
Messages postés
677
Date d'inscription
samedi 6 octobre 2012
Statut
Membre
Dernière intervention
10 juin 2020
14
Bonjour,

Merci, ce tutoriel marche parfaitement.
Je ne suis pas allé jusqu'au bout, mais j'ai trouvé ce qui intéressait.
Il faut passer par un autre fichier php, mais ça marche:

Dans le fichier html:
<form method='post' action='fichier.php'>
<p style='width:400px;'>Pseudo: <input size='60px' type='text' name='pseudo' id='pseudo' onBlur='pseudo()'></p>
<p id="message"></p>
<p style='width:150px;'><input style='width:400px;;height:50px;' type='submit' value='OK' name='ok'></p>
</form>
<script type="text/javascript">

function getXMLHttpRequest() {
 var xhr = null;
 
 if (window.XMLHttpRequest || window.ActiveXObject) {
  if (window.ActiveXObject) {
   try {
    xhr = new ActiveXObject("Msxml2.XMLHTTP");
   } catch(e) {
    xhr = new ActiveXObject("Microsoft.XMLHTTP");
   }
  } else {
   xhr = new XMLHttpRequest(); 
  }
 } else {
  return null;
 }
 
 return xhr;
}
var xhr = getXMLHttpRequest();
function pseudochange()
{
var pseudo = document.getElementById("pseudo").value; 
var Var1 = encodeURIComponent(pseudo);
var lien = "test.php?pseudo=" + Var1;
xhr.open("GET", lien, true);
xhr.send(null);
}
xhr.onreadystatechange = function() {
 if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
if (xhr.responseText == "Vide"){
  document.getElementById("messagepseudo").innerHTML = "<font color=\"red\">Vous devez spécifier un pseudo!</font>";
}else{
 document.getElementById("messagepseudo").innerHTML = "";
}
}
}

</script>


Et dans le fichier test.php:

<?php
extract($_GET);
if(isset($pseudo)){
echo "";
}else{
echo "Vide";
}
?>



Bien sûr, cela n'a aucune utilité de vérifier par php si une chaine est vide ou pas, on peut le faire directement en javascript. Ca peut par contre servir lorsque l'on veut vérifier la disponibilité d'un pseudo, et que l'on a besoin de se connecter à une bd mysql.
Utilisateur anonyme
La vérification en javascript ne vaut pas grand chose. Il faut l'utiliser pour le "confort" de l'utilisateur. Cela evite par exemple de devoir tout remplir un formulaire si deux mot de passe ne sont pas identique. Ce n'est pas une sécurité car JavaScript peut être désactivé, modifié en console, on peut modifier un header ou accéder à la page php sans Ajax.

La seule vrai vérification doit être en PHP !

bonne journée
Messages postés
677
Date d'inscription
samedi 6 octobre 2012
Statut
Membre
Dernière intervention
10 juin 2020
14
Bonjour,

Effectivement, je n'utilise Javascript que pour le confort.
De toute façon, on ne peut peut pas accéder à la page si Javascript est désactivé.

Comme montré dans mon code, lorsque le formulaire est rempli et que l'utilisateur à cliqué sur le bouton, cela appelle une page php, qui va faire la vérification finale.