Appeler une fonction PHP en Javascript (Ajax)
Résolu
Bonjour,
je cherche comment faire pour appeler (et récupérer le résultat d') une fonction php.
Par exemple, avec cette fonction:
En faisant des recherches, j'ai vu qu'il fallait utiliser Ajax, mais je ne sais pas comment l'utiliser.
Merci
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
-
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.-
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 -
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.
-