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] reponse xml http request


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 745
    Points : 166
    Points
    166
    Par défaut [AJAX] reponse xml http request
    bonjour,
    voila je suis novice en ajax et je dois realiser une sorte de "passerelle", ou encore de service web qui me permettent dans un premier temps d'envoyer un id à un serveur distant pour qu'il me renvoie un flux xml que je dois ensuite parser.
    Donc pour l'instant sur ma page j'ai :
    <script language="text/JavaScrpit">

    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
    this.form.onload() = function(){
      		 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...");
                  		
     			 xhr_object.open("POST", "http://(...)/test.asp", true);
                
               xhr_object.onreadystatechange = function() {
               if(xhr_object.readyState == 4){
               		eval(xhr_object.responseText);
               }           xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
               var data = "Culture="escape(<%=Culture%>)+"&Enseigne=<%=session("enseigne")%>"; 
               xhr_object.send(data);
          }
    
      }
    </script>
    qui est un code qui semble fonctionner.

    Bref j'ai donc plusieurs question :

    1) a quoi correspond la ligne en rouge?
    2) je vais coder ma page http://(...)/test.asp en asp et donc comment me renvoyer les données sur ma page?
    3) et comment les parser?
    Wala j'espere avoir été assez clair, je me suis pas mal documenté mais les tuto sur le net sont surtout pour l'envoie de données, pas vraiment la récupération.
    D'avance merci!



    Et enfin si juste en locale j'ai une page "test.asp" sur ma page principale j'en fais un include et dans ma page test je fais juste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <%	
     response.write "l'enseigne est :"&request("Enseigne")
     %>
    , cela ne me renvoie rien...

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Alex35
    1) a quoi correspond la ligne en rouge?
    => dès que la réponse Ajax est entièrement reçue (readyState == 4), exécute la chaîne de caractères retournée en tant qu'instruction Javascript (eval() )
    2) je vais coder ma page http://(...)/test.asp en asp et donc comment me renvoyer les données sur ma page?
    => response.write("alert('toto');")
    3) et comment les parser?



    Et enfin si juste en locale j'ai une page "test.asp" sur ma page principale j'en fais un include et dans ma page test je fais juste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <%	
     response.write "l'enseigne est :"&request("Enseigne")
     %>
    , cela ne me renvoie rien...
    Parce que ce n'est pas une instruction JS (juste du texte).
    Tu le verra en faissant un alert(xhr_object.responseText) au lieu du eval() ...
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 745
    Points : 166
    Points
    166
    Par défaut
    justement c t ma question en fait, a quoi correspond le eval?


    Mais en tout cas merci de ces reponses de si bon matin

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 745
    Points : 166
    Points
    166
    Par défaut
    [QUOTE=E.Bzz]=> response.write("alert('toto');")
    QUOTE]
    mais cela me renvoie une alerte non?


    et enfin pourquoi un erreur à la ligne en rouge (objet attendu)???


    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
    <script language="javascript">
      function update( id, value ) {
        
          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", "test.asp", true);
            	
           xhr_object.onreadystatechange = function() {
             if(xhr_object.readyState == 4)
                eval(xhr_object.responseText);
               //alert(xhr_object.responseText);
             }
            
             xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
               var data = "Culture=" + id + "&Enseigne=" + value ;
               xhr_object.send(data);
            }
          }//Fin fonction
    </script>
     
    
    
    <body onload="update('<%=Culture%>',<%=Enseigne%>)" >

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Alex35
    justement c t ma question en fait, a quoi correspond le eval?
    Citation Envoyé par E.Bzz
    exécute la chaîne de caractères retournée en tant qu'instruction Javascript
    Si ton serveur fait un ton nav récupère "toto" : tu en fais ce que tu veux : comme une variable JS qui contiendrait "toto".
    Si ton serveur fait un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    response.write("alert('toto')")
    ton nav récupère alert('toto') : c'est alors une instruction JS, mais contenu dans une chaine de caractère. Tu peux l'interpréter (= l'exécuter) avec eval()

    et enfin pourquoi un erreur à la ligne en rouge (objet attendu)???
    Heu ... on va faire une chose à la fois, d'accord ?
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 745
    Points : 166
    Points
    166
    Par défaut
    je nage completemet....

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 745
    Points : 166
    Points
    166
    Par défaut
    bon tu me dis tout de suite si j'abuse

    Mais pour l'instant en local je voudrais envoyer un id vi xmlhttprequest vers ma page test.asp et que ma page principal affiche cette valeur juste dans un textbox, ca ne me selmble pas trop complexe mais je n'arrive absolument a rien...

  8. #8
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    2 possibilités (suivant l'importance que tu apportes à la différenciation des traitements client/serveur) :
    Soi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ===========
    ASP
    ===========
    response.write(ton_id)
     
    ===========
    JS 
    ===========
    if(xhr_object.readyState == 4)
    document.getElementById('id_textbox').value=xhr_object.responseText;
    Soi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ===========
    ASP
    ===========
    response.write("document.getElementById('id_textbox').value='" & ton_id & "'")
     
    ===========
    JS 
    ===========
    if(xhr_object.readyState == 4)
    eval(xhr_object.responseText);
    Ca donne quoi ?
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 745
    Points : 166
    Points
    166
    Par défaut
    rien, je vais me tirer une balle et on verra ca plus tard!

  10. #10
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Alex35
    rien, je vais me tirer une balle et on verra ca plus tard!
    Fais voir comment tu l'as adaptè : aucune raison que ça marche pas ...
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 745
    Points : 166
    Points
    166
    Par défaut
    ma page principale
    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
    :<script language="javascript">
    function update( Culture, Enseigne ) {
     
          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", "test.asp", true);
     
           xhr_object.onreadystatechange = function() {
             if(xhr_object.readyState == 4)
     
              eval(xhr_object.responseText);
             }
     
             xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
               var data = "Culture=" + Culture + "&Enseigne=" + Enseigne ;
               xhr_object.send(data);
            }
          };
     
     
    </script>
     
     
     
    <body onload=" update('<%=Culture%>','<%=Enseigne'%>')" >
    avec dedans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td><input type="text" id="text" name="text" value=""></td>


    puis ma page test.asp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <%
    dim id, value
    dim sql
     
    id = request.form( "Culture" )
    value = request.form( "Enseigne" )
     
    response.write("document.getElementById('text').value='" & id & "'")
    %>

    wala

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 745
    Points : 166
    Points
    166
    Par défaut
    IT WORKS!!!!!



    Merci beaucoup a toi, je vais essayer d'approffondir la chose maintenant, je t'en suis extremement reconnaissant!
    et si je peux te renvoyer l'ascenseur, pas forcément en js , je le ferais avec plaisir!!
    Encore merci!!

    enfin juste une derniere petite precision pour le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ===========
    ASP
    ===========
    response.write("document.getElementById('id_textbox').value='" & ton_id & "'")
     
    ===========
    JS 
    ===========
    if(xhr_object.readyState == 4)
    eval(xhr_object.responseText);
    cela ne me renoie rien car je pense etant donné que l'on est dans une page différente il n'arrive pas a faire le ("document.getElementById('id_textbox').value='" & ton_id & "'"), me trompe-je? Sinon quelle serait la solution pour lui faire pointer sur la bonne page?

  13. #13
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Alex35
    cela ne me renoie rien car je pense etant donné que l'on est dans une page différente il n'arrive pas a faire le ("document.getElementById('id_textbox').value='" & ton_id & "'"), me trompe-je? Sinon quelle serait la solution pour lui faire pointer sur la bonne page?
    Oui, j'ai peut-être été un peu trop synthétique

    ===========
    ASP
    ===========
    représente ta page test.asp (appelée par Ajax)

    et
    ===========
    JS
    ===========
    représente la page affichée dans le nav (celle qui appelle Ajax) : c'est dans celle-ci que doit se trouver 'id_textbox'.

    Il s'agit bien de 2 pages différentes ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 745
    Points : 166
    Points
    166
    Par défaut
    oui merci j'avais tres bien compris mais c'est juste pour pointer sur ma page qui contient mon textbox a partir de ma page asp qui recoit les valeur


    pour cela je rajoute ma form :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     var data = "Culture=" + Culture + "&Enseigne=" + Enseigne + "&form=" + this.document.name ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    form = request("form") 
     
    response.write(form&".document.getElementById('text').value='" & id & "'")
    et j'essaye un truc comme cela mais me renvoie soit
    [object]
    soit
    undefinied

    donc pas de resultat, mais je vais essayer de creuser un peu, en tout cas encore un grand merci a toi ton aide m'a été precieuse!

  15. #15
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Alex35
    donc pas de resultat, mais je vais essayer de creuser un peu, en tout cas encore un grand merci a toi ton aide m'a été precieuse!
    Heu ... pas besoin : les instructions déjà donnée fonctionnent telle quelle.
    Le getElementByID est généré dans test.asp, mais s'éxécute dans la page qui contient le textbox. Elle "pointe" donc déjà au bon endroit ...
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  16. #16
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 745
    Points : 166
    Points
    166
    Par défaut
    yes , you're right, thanks!
    A+

  17. #17
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    You're welcome

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. xml http request
    Par djasedub dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 20/04/2015, 16h36
  2. [2k8]xml http request depuis un job SQL
    Par Monstros Velu dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 16/02/2011, 19h24
  3. 4 listes déroulantes liées (XML HTTP REQUEST)
    Par cyberdevelopment dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 24/05/2007, 13h38
  4. XML Http Request
    Par ouam81 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 22/06/2006, 19h25
  5. Code XML http REponse
    Par roudoudouduo dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 25/04/2006, 11h26

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