Bonjour
Avant tout je tiens à préciser que j'ai voulu faire la recherche sur le forum si ce post existait déjà mais la recherche a bugué x). Bref.
Dans un champ de type text, j'ai soit une chaine de type "aaaa" soit un mail.
Quand l'utilisateur tape quelque chose dans ce champ, j'aimerai faire un contrôle instantané pour savoir si ce qui est tapé existe déja dans la base ou pas.
S'il n'existe pas : on affiche "disponible", sinon on affiche "pris" dans le div sous ce champ.
Voici mon code (je n'ai pas mis le html) :
Et voici la requête SQL qui renvoie 1 ou 2 suivant si ce que l'utilisateur a entré existe ou non.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 var urlter = "start_ajax.php?Action=cpt&Etape=ajax_dest&recherche="; function writediv(texte) { document.getElementById('verifbox').innerHTML = texte; } var rgxvir = /\s*,\s*/; var rgxmail = /\s*@\s*/; function verifDest() { if(dest != '') { if(dest.length<3) writediv('<span style="color:#cc0000"><b>'+dest+' :</b> cette destination est trop courte</span>'); else if(dest.length>20 && !rgxmail.exec(dest) && !rgxvir.exec(dest)) writediv('<span style="color:#cc0000"><b>'+dest+' :</b> cette destination est trop longue</span>'); else { writediv(''); http.open("GET", urlter + escape(dest), true); http.onreadystatechange = handleHttpResponseTer(dest); http.send(null); } } else writediv(''); } function handleHttpResponseTer(dest) { if (http.readyState == 4) { var responsedest = http.responseText; if (responsedest == 2) { writediv('<span style="color:#cc0000"><b>'+dest+' :</b> cette destination est deja prise</span>'); } else { writediv('<span style="color:#1A7917"><b>'+dest+' :</b> cette destination est libre</span>'); } } }
Apparement, en response j'obtiens bien un "2" (FireBug qui le dit) mais ça ne fait strictement rien (aucun affichage).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 $ref = $_REQUEST['recherche']; $SQLdest = "SELECT destination FROM emails WHERE source LIKE '$ref'"; $Q = mysql_db_query($SQLdest); if(mysql_num_rows($Q)>=1) return 1; else return 2;
Donc je ne vois pas ce qui manque/est mal écrit ... Si vous pouviez m'aider =)
Partager