Requete mysql ajax
dallap
-
dallap -
dallap -
Bonjour,
Je souhaiterai effectuer une requête Mysql grâce à du javascript/ajax.
Je me suis servit de ce tutoriel https://www.toutjavascript.com/savoir/xmlhttprequest.php3 mais je n'ai aucun résultat.
Voici un extrait de mon code:
J'ai un formulaire qui, au submit appel une fonction Check. Dans cette fonction javascript je contrôle les champs (cette partie fonctionne), puis viens le controle du double pseudo:
ma fonction PHP check_pseudo:
je souhaiterai que ma fonction javascript de check formulaire renvoie false/true suivant si le pseudo est deja utilisé...
j'avoue être un peu perdu à la fin de la fonction javascript.
Pourriez vous m'aider?
merci!
Je souhaiterai effectuer une requête Mysql grâce à du javascript/ajax.
Je me suis servit de ce tutoriel https://www.toutjavascript.com/savoir/xmlhttprequest.php3 mais je n'ai aucun résultat.
Voici un extrait de mon code:
J'ai un formulaire qui, au submit appel une fonction Check. Dans cette fonction javascript je contrôle les champs (cette partie fonctionne), puis viens le controle du double pseudo:
var l1 = f.elements["pseudo"]; //mon champs pseudo var index = l1.value; if(index < 4) {} else { var xhr_object = null; if(window.XMLHttpRequest) // Firefox xhr_object = new XMLHttpRequest(); else if(window.ActiveXObject) // Internet Explorer xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); else { // XMLHttpRequest non supporté par le navigateur alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); return; } xhr_object.open("POST", "check_pseudo.php", true); //appel ma fonction de controle dans la bdd xhr.onreadystatechange = function() { //Si la requête est terminée if ( xhr.readyState == 4 ) //Si la réponse ne contient pas d'erreur if ( xhr.status == 200 ) { //ICI JE SUIS UN PEU PERDU, JE NE SAIS PAS QUOI METTRE } else //Erreur alert ("erreur"); } xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); // QUE METTRE ICI ??? data="colonne="+colonne; xhr.send(data); }
ma fonction PHP check_pseudo:
function check_pseudo() { connectMySQL(); $sql = 'SELECT count(*) FROM user WHERE pseudo="'.$_SESSION['pseudo'].'"'; $req = mysql_query($sql) or die(mysql_error()); $data = mysql_fetch_array($req); if ($data[0] == 0) { echo "<script>return true;</script>"; } else { echo "<script>return false;</script>"; echo "alert('already used');";} @mysql_close($mysql_db); }
je souhaiterai que ma fonction javascript de check formulaire renvoie false/true suivant si le pseudo est deja utilisé...
j'avoue être un peu perdu à la fin de la fonction javascript.
Pourriez vous m'aider?
merci!
A voir également:
- Requete mysql ajax
- Mysql community server - Télécharger - Bases de données
- Requete sql pix - Forum PHP
- Mysql error 2002 ✓ - Forum Linux / Unix
- Erreur lors de l'envoi de la requête facebook - Forum Facebook
- Erreur de requete facebook - Forum Facebook
3 réponses
Quand le status est égale à 200 cela veut dire que tout est ok, donc à toi de voir ce que tu veux faire.
Ensuite lorsque tu fais xhr.send(data)
data correspond aux valeurs que tu va envoyé à ton fichier check_pseudo.php
donc à mon avis tu dois récupérer le pseudo pour ensuite faire le traitement dans ta page php
Je suis rarement claire dans mes explications, donc n'hésite pas à dire si tu comprends rien à ce que je te raconte !
Ensuite lorsque tu fais xhr.send(data)
data correspond aux valeurs que tu va envoyé à ton fichier check_pseudo.php
donc à mon avis tu dois récupérer le pseudo pour ensuite faire le traitement dans ta page php
Je suis rarement claire dans mes explications, donc n'hésite pas à dire si tu comprends rien à ce que je te raconte !
Bonjour, j'y suis presque arrivé, en m'inspirant de http://www.editeurjavascript.com/trucs/35,ajax_interrogez_votre_serveur_avec_javascript.php
j'ai réussit à faire afficher "votre pseudo est trop court" au cours de la frappe.
mon seul problème est d'écrire correctement cette partie:
Sur cette page j'ai un include functions.php où se trouve ma fonction PHP "checkpseudo" je dois l'apeller sur la ligne en gras mais je n'y arrive pas. Comment puis-je faire?
merci!
j'ai réussit à faire afficher "votre pseudo est trop court" au cours de la frappe.
mon seul problème est d'écrire correctement cette partie:
function check_pseudo(pseudo) { if(pseudo != '') { if(pseudo.length<4) writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est trop court</span>'); else if(texte = file('checkpseudo?pseudo='+escape(pseudo))) /CETTE LIGNE { 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(''); } } }
Sur cette page j'ai un include functions.php où se trouve ma fonction PHP "checkpseudo" je dois l'apeller sur la ligne en gras mais je n'y arrive pas. Comment puis-je faire?
merci!
dans ma fonction javascript je dois appeler la fonction php à un moment, comme dans ce tutorial: http://www.editeurjavascript.com/trucs/35,ajax_interrogez_votre_serveur_avec_javascript.php
il l'effectue à la ligne:
else if(texte = file('http://www.editeurjavascript.com/scripts/exemples/verifpseudo.php?pseudo='+escape(pseudo)))
je souhaiterai faire la même chose mais au lieu mettre http://www.editeurjavascript.com/scripts/exemples/verifpseudo.php? je souhaiterais mettre ma fonction php checkpseudo (qui n'a rien avoir avec check_pseudo javascript)
pour infos voici checkpseudo():
function checkpseudo() {
connectMySQL();
$sql = 'SELECT count(*) FROM table WHERE pseudo="'.$_GET['pseudo'].'"';
$result = mysql_query ($sql);
if(mysql_num_rows($result)>=1)
echo "1";
else
echo "2";
@mysql_close($mysql_db);
}
il l'effectue à la ligne:
else if(texte = file('http://www.editeurjavascript.com/scripts/exemples/verifpseudo.php?pseudo='+escape(pseudo)))
je souhaiterai faire la même chose mais au lieu mettre http://www.editeurjavascript.com/scripts/exemples/verifpseudo.php? je souhaiterais mettre ma fonction php checkpseudo (qui n'a rien avoir avec check_pseudo javascript)
pour infos voici checkpseudo():
function checkpseudo() {
connectMySQL();
$sql = 'SELECT count(*) FROM table WHERE pseudo="'.$_GET['pseudo'].'"';
$result = mysql_query ($sql);
if(mysql_num_rows($result)>=1)
echo "1";
else
echo "2";
@mysql_close($mysql_db);
}