mysql / PHP / AJAX: Fonction récup des valeurs dans champs

energie13
Invité n'ayant pas de compte PHPfrance

23 janv. 2006, 18:02

bonjour,
j'ai trouvé une fonction qui permet de controler si le pseudo renseigner dans un champ se trouve ou non dans la base mysql sans recharger la page. C'est extra déjà :)

Je souhaite compléter le script en lui demandant une fois que le pseudo est trouvé dans la base de récupérer le nom de famille correspondant au pseudo dans un autre champ texte sans avoir à recharger la base.

Voici les codes utilisés :
pages.php :

Code : Tout sélectionner

<html> <head> <title>AJAX</title> <script type="text/javascript"> function writediv(texte) { document.getElementById('pseudobox').innerHTML = texte; } function verifPseudo(pseudo) { if(pseudo != '') { if(pseudo.length<2) writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est trop court</span>'); else if(pseudo.length>30) writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est trop long</span>'); else if(texte = file('http://127.0.0.1/verifpseudo.php?pseudo='+escape(pseudo))) { if(texte == 1) writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est deja pris</span>'); else if(texte == 2) writediv('<span style="color:#1A7917"><b>'+pseudo+' :</b> ce pseudo est libre</span>'); else writediv(texte); } } } function file(fichier) { if(window.XMLHttpRequest) // FIREFOX xhr_object = new XMLHttpRequest(); else if(window.ActiveXObject) // IE xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); else return(false); xhr_object.open("GET", fichier, false); xhr_object.send(null); if(xhr_object.readyState == 4) return(xhr_object.responseText); else return(false); } </script> </head> <body> <form action="" name="test" id="test"> <input type="text" name="pseudo" onKeyUp="verifPseudo(this.value)" /> <div id="pseudobox"></div> </form> </body> </html>
page Vérifpseudo.php

Code : Tout sélectionner

<?php // // VERIFICATION EN LIVE DU PSEUDO // // CONNECION SQL mysql_connect("localhost", "identi", "pass"); mysql_select_db("ecoute"); // VERIFICATION $result = mysql_query("SELECT login FROM utilisateurs WHERE login='".$_GET["pseudo"]."'")or die(mysql_error()) ; if(mysql_num_rows($result)>=1) echo "1"; else echo "2"; ?>
Si quelqu'un à une idée je lui en serais tres reconnaissant
C'est assez complique (enfin pour moi)

Merci par avance

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

23 janv. 2006, 18:22

Et si, lors de la vérification du login, tu retournais soit 1 si le login n'existe pas, soit les infos que tu veux si il existe ?
// VERIFICATION
$result = mysql_query("SELECT login, nom_de_famille FROM utilisateurs WHERE login='".$_GET["pseudo"]."'")or die(mysql_error()) ;
if(mysql_num_rows($result)>=1)
//récupération du champs "nom_de_famille" dans les résultats
echo mysql_result($result, 0, "nom_de_famille");
else
echo "2";
Et dans le code de vérification :

Code : Tout sélectionner

if(texte <> 2) writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est deja pris par "+texte+"</span>'); else if(texte == 2) writediv('<span style="color:#1A7917"><b>'+pseudo+' :</b> ce pseudo est libre</span>'); else writediv(texte); }
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 568 Messages

23 janv. 2006, 18:25

Je serais curieux de connaitre l'avis des grands de ce forum sur ces objets ? Ca me semble pouvoir rendre des services, mais est-ce qu'il y a des bugs, incompatibilités trop grande ou je ne sais quoi d'autre ?
Heddi s'est remis à développer pour lui même !
Martina Hingis - Étoile du Tennis
Heddi v. 2007

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

23 janv. 2006, 18:30

Je serais curieux de connaitre l'avis des grands de ce forum sur ces objets ? Ca me semble pouvoir rendre des services, mais est-ce qu'il y a des bugs, incompatibilités trop grande ou je ne sais quoi d'autre ?
Ca sera avec plaisir mais dans un autre sujet pour ne pas mélanger les réponses dans celui çi ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer