IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[AJAX] AJAX + ASP.


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    373
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 373
    Par défaut [AJAX] AJAX + ASP.
    Bonjour à tous,

    J'ai fait deux pages:

    Page1.asp qui contient le formulaire et le code Javascript:
    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans titre</title>
     
    <script type="text/javascript">
    function writediv(texte)
         {
         document.getElementById('ville').innerHTML = texte;
         }
     
    function verifVille(cp)
         {
         if(cp != '')
                   {
                   if(cp.length<5)
                             writediv('<span style="color:#cc0000"><b>'+cp+' :</b> ce Code Postal est court</span>');
     
                   else if(texte = file('Page2.asp?cp='+escape(cp)))
                             {
              if(texte == "ok")
                   writediv('<span style="color:#cc0000"><b>'+cp+' :</b> ce Code Postal existe</span>');
              else if(texte == "no")
                   writediv('<span style="color:#1A7917"><b>'+cp+' :</b> ce Code Postal n existe pas</span>');
              else
                   writediv('');
                             }
                   }
     
         }
     
    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("POST", fichier, true);
         xhr_object.send(null);
         if(xhr_object.readyState == 4) return(xhr_object.responseText);
         else return(false);
         }
    </script>
     
    </head>
     
    <body>
    <form id="form1" name="form1" method="post" action="">
     
      <input type="text" name="cp" onKeyUp="verifVille(this.value)" />
      <div id="ville"></div>
    </form>
    </body>
    </html>
    Page2.asp qui contient le code ASP pour testet l'existance du Code Postal dans la base de données:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ..
    'La requête est:
    requete = "select cp from toutes_villes where cp like '"&Request("cp")&"'"
    ...
    .....
    <%if resultat="ok" then%>
    <%response.Write("ok")%>
    <%else%>
    <%response.Write("no")%>
    <%end if%>
    Mais il donne rien si on tape 5 caractères ou plus !

    Quel est le problème ?

    Et merci d'avance.

  2. #2
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    373
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 373
    Par défaut
    Je pense que le pb existe ici : if(xhr_object.readyState == 4)

  3. #3
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2007
    Messages : 13
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        else if(texte = file('Page2.asp?cp='+escape(cp)))
    euh, texte n'a pas de valeur là non?
    Ca fait pas comme si tu comparais texte et le résultat de ta fonction?
    Auquel cas, il ne rentre jamais dedans...

    Perso j'aurai fait :
    else {
    texte = file('Page2.asp?cp='+escape(cp))
    [...]
    }

  4. #4
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    373
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 373
    Par défaut
    J'ai fait comme ça:

    else {
    texte = file('Page2.asp?cp='+escape(cp))
    [...]
    }
    Mais la fonction file me retourne toujours false!!

  5. #5
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2007
    Messages : 13
    Par défaut
    Hum, ...
    essaye de voir si ton paramètre est bien pris en compte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function file(fichier)
         {
         alert(fichier);
    [...]
    Dis nous/moi ce qu'il t'affiche...
    Je pense que comme partout tu lui mets que tu passes tes variables en post et que finalement ton cp tu le passes en get (request.querystring), il apprécie peut etre pas...

    sinon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    texte = file('Page2.asp',escape(cp))
    et dans ta fonction file,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    xhr_object.open("POST", fichier, true);
    var data = "cp="+cp
    xhr_object.send(data);

  6. #6
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    373
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 373
    Par défaut
    Si je fais:
    function file(fichier)
    {
    alert(fichier);
    [...]
    alors l'alert affiche: Page2.asp?id=78240 (j'ai saisi 78240)
    et la fonction file retourne false.


    Si je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    texte = file('Page2.asp',escape(cp))
    et
    xhr_object.open("POST", fichier, true);
    var data = "cp="+cp
    xhr_object.send(data);
    alors alert(fichier) donne Page2.asp
    et la fonction ne retourne rien c-a-d ça marche pas

  7. #7
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2007
    Messages : 13
    Par défaut
    T'es sur du code de ta page2.asp ?

  8. #8
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    373
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 373
    Par défaut
    Oui,
    Si j'execute "page2.asp?cp=78240"

    j'obtiens ok

  9. #9
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2007
    Messages : 13
    Par défaut
    Il manque une fonction qui surveille l'état de l'objet xhr_object:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    xhr_object.open("POST", fichier, true);
    xhr_object.onreadystatechange = function() { 
          if(xhr_object.readyState == 4) return(xhr_object.responseText);
    }
    var data = "cp="+cp
    xhr_object.send(data);

Discussions similaires

  1. Problème d'envoi de parametre en ajax et asp
    Par rifidamiens dans le forum ASP
    Réponses: 0
    Dernier message: 26/03/2008, 15h31
  2. Installer des extensions AJAX pour ASP.NET
    Par Rick62 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 21/02/2008, 17h48
  3. Ajax et ASP ?
    Par jmulans dans le forum ASP
    Réponses: 3
    Dernier message: 10/04/2007, 13h23
  4. [AJAX] Ajax et ASP.NET
    Par boleduch dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/03/2006, 16h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo