Pb Ajax/Javascript

Pb Ajax/Javascript - HTML/CSS - Programmation

Marsh Posté le 16-11-2006 à 19:32:25    

Bonsoir à tous!
Je ne sais plus quoi faire...
J'essaie de vérifier avec AJAX, un formulaire.
J'aimerai que au fur et à mesure que l'utilisateur tape son adresse mail, un message s'affiche (si c'est bon ou pas..)
 
seulement mon GetElementById me dit que "mail_verif has no propertie" ...
Je ne comprend pas pourquoi.. [confus]  
Si vous avez une solution, merci d'avance parce que là je galère lol

Code :
  1. <html>
  2. <head>
  3. <script language="javascript">
  4. function file(fichier)
  5. {
  6. if(window.XMLHttpRequest) // FIREFOX
  7. xhr_object = new XMLHttpRequest();
  8. else if(window.ActiveXObject) // IE
  9. xhr_object = new ActiveXObject("Microsoft.XMLHTTP" );
  10. else
  11. return(false);
  12. xhr_object.open("GET", fichier, true);
  13. xhr_object.send(null);
  14. if(xhr_object.readyState == 4) return(xhr_object.responseText);
  15. else return(false);
  16. }
  17. function verif_mail(mail)
  18. {
  19.     if (mail != '')
  20.     {
  21.         var texte = file("ajax.php" );
  22.        
  23.             if (texte == 1)
  24.             {   
  25.                 writediv('<span style="color:#cc0000"><b>'+mail+'</b> est invalide</span>');
  26.                 document.write("coucou1" ) ;
  27.             }
  28.             else if(texte == 2)
  29.             {
  30.                 writediv('<span style="color:#cc0000"><b>'+mail+'</b> est valide</span>');
  31.                  document.write("coucou2" ) ;
  32.             }
  33.             else
  34.             {
  35.                  document.write("coucou3" ) ;
  36.                 writediv('');
  37.             }
  38.        
  39.     }
  40. }
  41. function writediv(texte)
  42. {
  43. document.getElementById('mail_verif').innerHTML = texte;
  44. }
  45. </script>
  46. </head>
  47. <body>
  48. <form action="" method="post">
  49. Adresse Mail<br/>
  50. <input type="text" name="mail" onKeyUp="verif_mail(this.value)"> <br/><div id="mail_verif"></div><br/> <br/>
  51. </form>
  52. </body>
  53. </html>


 
 
et dans Ajax.php

Code :
  1. <script language="javascript">
  2. function vmail(mail){
  3.    // l'adresse minimum est xx@yy.zz
  4.    var point=mail.value.lastIndexOf('.');
  5.    // La position du dernier point de l'adresse email
  6.    var arob=mail.value.lastIndexOf('@');
  7.    // La position du dernier @ de l'adresse email
  8.    var longu=mail.value.length;
  9. // La longueur de l'adresse
  10. if((longu-point < 3) || (longu-arob) < 6 || arob > point || point == -1 || arob == -1){
  11.    // Si le point se trouve a moins de 2 caractères de la fin
  12.    // ou si l'arobase se trouve a moins de 5 caractères de la fin
  13.    // ou si il n'y a pas de point après @
  14.    // ou si il n'y a pas de point ou pas de @
  15.    document.write("1" );
  16.  
  17. }else{
  18.      document.write("2" );
  19.  
  20. }
  21. }
  22. </script>

Reply

Marsh Posté le 16-11-2006 à 19:32:25   

Reply

Marsh Posté le 17-11-2006 à 09:05:37    

Salut,
 
Pourquoi nommes-tu ton fichier javascript .php? ca devrait être du code php dedans, non?
Je ne suis pas sur de ca mais je crois que le code de ce fichier n'est pas interpreté, il te renvoie tout le code si tu veux.
La fonction document.write te supprime alors tout le code dans ton navigateur, la div mail_verif y compris, et donc elle n'existe plus quand tu fais ton getElementById, d'ou l'erreur que tu vois.
 
Pour debugger c'est plus simple que tu crées une div id="debug" et que tu passes tes messages de debug par un document.getElementById('debug').innerHTML = '', parce que document.write t'efface tout ton document.
 
 

Reply

Marsh Posté le 17-11-2006 à 11:53:39    

faudrait arreter la drogue [:petrus75]
tu ne vas pas faire une requete "Ajax" à chaque fois que le mec a tapé une lettre, c'est incensé :/
surtout pour verifier un mail, autant le faire en JS.
Il vaut mieux valider un form en JS avant l'envoi et apres l'envoi le valider en php. mais faire tout en php via ajax est stupide

Reply

Marsh Posté le 17-11-2006 à 23:57:17    

gatsu35 a écrit :

tu ne vas pas faire une requete "Ajax" à chaque fois que le mec a tapé une lettre, c'est incensé :/


Google le fait bien ;) même si c'est pour une application plus utile, je l'admets. ( http://www.google.com/webhp?complete=1 )

Reply

Marsh Posté le 18-11-2006 à 00:07:57    

sigmar_ a écrit :

Google le fait bien ;) même si c'est pour une application plus utile, je l'admets. ( http://www.google.com/webhp?complete=1 )


 
Google ils ont pas les même serveurs que tout le monde aussi  [:0x90]


Message édité par 0x90 le 18-11-2006 à 00:08:06
Reply

Marsh Posté le 18-11-2006 à 12:57:38    

A ce que je sais de google ils ont un timer, c'est pas sur onkeyup...
 
Au passage... hmmm... quelle idée farfelue, faire de l'XmlHttp pour verifier une adresse email... LOL
 
if (input.value.search(/^[a-z0-9_\.\-]+@[a-z0-9_\.\-]+\.[a-z]{3}$/i) == -1) // invalide
 
au pif... les expressions rationelles c'est bien aussi :)


Message édité par astero-H le 18-11-2006 à 13:00:33
Reply

Marsh Posté le 18-11-2006 à 13:30:16    

ta regexp ne match pas tout et un mail comme truc@truc.gouv.fr l'aura dans le cul
meme avec un domaine comme louvre.museum.
Voila une petite regexp qui est plus que correct malhereusement elle ne matche pas les adresses ip mail@123.123.133.122
et pour tester une regexp, je prefere utiliser test ou match
 
if (/^([\w-]+(\.[\w-]+)*@[\w-]{2,}(\.[\w-]+)*\.[a-zA-Z]{2,7})$/.test(input.value))
OU
if (input.value.match(/^([\w-]+(\.[\w-]+)*@[\w-]{2,}(\.[\w-]+)*\.[a-zA-Z]{2,7})$/))

Reply

Marsh Posté le 18-11-2006 à 16:34:45    

oui mais bon c'était juste pour l'exemple, par pour être juste :)
 
ça fait longtemps que j'ai plus eu besoin de ces conneries... maintenant je suis sous .net :love:  

Message cité 1 fois
Message édité par astero-H le 18-11-2006 à 16:36:19
Reply

Marsh Posté le 18-11-2006 à 17:42:42    

astero-H a écrit :

oui mais bon c'était juste pour l'exemple, par pour être juste :)
 
ça fait longtemps que j'ai plus eu besoin de ces conneries... maintenant je suis sous .net :love:


Sauf que .net c'est de la merde en barre pour faire du web.
 
.Net génère un paquet immonde de merdasse quand on utilisent leurs webforms

Reply

Marsh Posté le 19-11-2006 à 10:21:47    

lol... troll moisi... :sarcastic:  
 
même si ça vaut pas trop le coup de répondre à ça je dirais que tu devrais essayer de voir plus loin que le bout de ton nez... ces technos sont pas une exclusivité d'internet...
 
 :hello:  

Reply

Marsh Posté le 19-11-2006 à 10:21:47   

Reply

Marsh Posté le 19-11-2006 à 11:29:36    

oui je sais, mais ASP.net dans sa base génère du code HTML qui ne répond pas aux standards.
Je ne cherche pas à troller, mais j"evite d'utiliser les outils tous faits de .NET.
 
La derniere fois que j'ai maquetté un site en xHTML/CSS tout propre, l'ingé qui l'a intégré en .NET a  utilisé quelques composants de .NET.
Résultat simple :  
Sous IE, j'avais un DIV qui englobait mon contenu
sous FF, j'avais un tableau.
 
Ce con de .NET fouillait le user Agent pour detecter le Navigateur et genere le html en fonction [:le kneu]


Message édité par gatsu35 le 19-11-2006 à 11:29:47
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed