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

AJAX Discussion :

[AJAX] avec onreadystatechange


Sujet :

AJAX

Vue hybride

laurentg2003 [AJAX] avec onreadystatechange 23/02/2010, 19h25
laurentg2003 bonjour, Je pense avoir... 24/02/2010, 14h05
laurentg2003 bon j'ai réécrit ma méthode ... 25/02/2010, 14h28
laurentg2003 décidement ajax et poo c'est... 25/02/2010, 19h37
laurentg2003 Décidement ,je suis un idiot ... 26/02/2010, 15h58
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 327
    Par défaut [AJAX] avec onreadystatechange
    Bonjour
    J'ai un script ajax qui récupere une requete SQL sous forme d'une chaine de caractére et qui la traite et la je réusine en POO
    Voici mon code
    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    /classe qui manipule un objet ObjectAjax qui ouvre une connexion au script ajax.php éxécute une requete ajax et retourne le résultat sous forme de string.
    var obj=new Object();
    obj.READY_STATE_UNINITIALIZ=0;
    obj.READY_STATE_LOADING=1;
    obj.READY_STATE_LOADED=2;
    obj.READY_STATE_INTERACTIVE=3;
    obj.READY_STATE_COMPLETE=4;
     
    obj.ObjectAjax=function(){
    this.req=null;
     
    if (window.ActiveXObject) {
       this.req = new ActiveXObject("Microsoft.XMLHTTP");
     
     
    }
    else if (window.XMLHttpRequest) {
       this.req = new XMLHttpRequest();
       this.req.overrideMimeType('text/xml');
     
     
    }
     
     
     
    }
     
     
    obj.ObjectAjax.prototype.exReq=function(){
    alert("exReq");
     
       this.req.open('GET','ajax.php',true);  
       this.req.onreadystatechange=req;
     
       this.req.send(null);
       that=this; 
       objectXmlhttp=that.req;//on crée une variable globale
     
     
     
     
    }
    function req(){
     
     
    switch (objectXmlhttp.readyState){
    case(1):var str1="Connexion établie,le status est :"+objectXmlhttp.status;alert(Str1);
    case(2):var str2="requête envoyée,le status est :"+objectXmlhttp.status;
    case(3):var str3="Réponse en cours de réception...le status est :"+objectXmlhttp.status;
    case(4):var rappel = setInterval("req",5000);//alert(objectXmlhttp.responseText);
    Texte=objectXmlhttp.responseText;//on crée une variable globale contenant le texte
     
     
     
     
     
     
     
     
     
    }
    }
     
     
     
    obj.ObjectAjax.prototype.returnDataBase=function() {
     
     
     
    this.dataBase=dataBase=new Array();	
    var exReg=new RegExp("=[a-zA-Z0-9/.: ]*\]","g");//erreur caractere facultatif ignoré + pb <>  extension jpg jpeg ou particularité javaScript/ajax
    var chaine=this.texte.match(exReg).toString();
    //alert(chaine);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.req.onreadystatechange=req;
    me pose soucis il me force à appeler une fonction..
    du coup la valeur que je veux passer à la méthode suivante returnDataBase est une variable locale
    que je n'arrive pas à transformer en variable globale et sérieux ça fait pas "propre"
    De plus ce qui me pose probleme je voudrais que this.req.onreadystatechange=req appelle une méthode
    Donc je me suis dit créons un objet dont l'une des propriétés appellera call et donc la methode req qui deviendra donc une méthode
    Mais là je coince totalement
    Merci de me donner une piste

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 327
    Par défaut
    bonjour,
    Je pense avoir trouver une solution un peu tirée par les cheveux...
    mon code
    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    //classe qui manipule un objet ObjectAjax qui ouvre une connexion au script ajax.php éxécute une requete ajax et retourne le résultat sous forme de string qui est traité et affiché
    var obj=new Object();
    obj.READY_STATE_UNINITIALIZ=0;
    obj.READY_STATE_LOADING=1;
    obj.READY_STATE_LOADED=2;
    obj.READY_STATE_INTERACTIVE=3;
    obj.READY_STATE_COMPLETE=4;
     
     
    obj.ObjectAjax=function(){
    this.req=null;
     
    if (window.ActiveXObject) {
       this.req = new ActiveXObject("Microsoft.XMLHTTP");
     
    }
    else if (window.XMLHttpRequest) {
       this.req = new XMLHttpRequest();
       this.req.overrideMimeType('text/xml');
     
     
    }
     
     
     
    }
     
     
    obj.ObjectAjax.prototype.exReq=function(){
     
     
       this.req.open('GET','ajax.php',true);    
       this.req.onreadystatechange=rq;
       this.req.send(null);
       that=this; 
       req=that.req;//on crée une variable globale
     
     
     
     
    }
     
    //obj.ObjectAjax.prototype.rq=function(){
    function rq(){
    this.res=null;
    alert("");
     
       switch (req.readyState){
    case(1):var str1=setInterval("rq",5000);
    case(2):var str2=setInterval("rq",5000);
    case(3):var str3=setInterval("rq",5000);
    case(4):var rappel = setInterval("rq",5000);//alert(objectXmlhttp.responseText);
    this.res=req.responseText;//on crée une variable globale contenant le texte
     
     
     
     
     
     
     
     
     
    }
    }
    rq.prototype.returnValue=function() {
     
     
    alert(this.res);
    }
    et celui de la page et fonction d'appel
    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
    function static_void_Main(){
    var obAjax = new obj.ObjectAjax();
        obAjax.exReq(); 	
        ob=new rq();
        ob.returnValue();	
        //obAjax.returnDataBase();	
        /*obAjax.createChampsJs();
    	obAjax.createDataBaseJs();
        obAjax.tabNamePiste();
    	obAjax.IdPosition();
    	obAjax.afficheTableauAccueil();
    	obAjax.clickUrl;*/
     
    		}
    	//newtimer = setTimeout("static_void_Main()",1000);
    window.onload=static_void_Main;
    en fait avec this.req.onreadystatechange=rq; j'appelle donc une fonction qui est une fonction de rappel ,la fonction rq,mais comme la syntaxe d'une fonction basique correspond à un constructeur et bien j'en fais aussi un constructeur ob=new rq();
    avec ob.returnValue je récupere ma chaine de caractere
    aprés je peux envoyer cette valeur à l'objet obAjax ou mieux mettre en oeuvre l'héritage
    je pense que la solution se trouve là...
    Mais j'ai un probleme,ma "fonction-consctructeur" rq
    je remet le code
    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
    function rq(){
    this.res=null;
    alert("");
     
       switch (req.readyState){
    case(1):var str1=setInterval("rq",5000);
    case(2):var str2=setInterval("rq",5000);
    case(3):var str3=setInterval("rq",5000);
    case(4):var rappel = setInterval("rq",5000);//alert(objectXmlhttp.responseText);
    this.res=req.responseText;//on crée une variable globale contenant le texte
     
     
     
     
     
     
     
     
     
    }
    }
    cette fonction de rapelle ne rappelle rien or si je place un simple alert
    elle fonctionne le alert crée une pose (c'est ma théorie)
    et readyState a le temps de se mettre à 4
    Quelqu'un a t il une idée pour une fonction de rappel?
    merci

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 327
    Par défaut
    bon j'ai réécrit ma méthode
    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
    ObjectAjax.prototype.exReq=function(){
     
     
       this.req.open('GET','ajax.php',true); 
     
      this.req.onreadystatechange=function(){
     
       var readyState = this.readyState;
    if (readyState == 4) {
    alert(this.responseText)
     }  
     
     
     
    }  
     
    this.req.send(null);
    }
    Ma question est simple comme récupérer this.responseText dans la méthode?
    Merci

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 327
    Par défaut
    décidement ajax et poo c'est pas ça
    Je vais passé à flex je connais actionScript
    c'est comme java ça sera plus simple et fiable

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 327
    Par défaut
    Décidement ,je suis un idiot

    Prototype fait tout ça en 3 lignes de codes
    http://amillet.developpez.com/tutori...jax-prototype/
    Mea Culpa

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

Discussions similaires

  1. [STRUTS][AJAX]Quel framework AJAX avec Struts
    Par woodwai dans le forum Struts 1
    Réponses: 24
    Dernier message: 12/03/2009, 16h19
  2. [AJAX] Utilisation AJAX avec IE
    Par Death83 dans le forum Général JavaScript
    Réponses: 42
    Dernier message: 01/07/2006, 20h33
  3. [AJAX] Peut-on faire de l'AJAX avec ASPX
    Par Kylen dans le forum ASP.NET
    Réponses: 5
    Dernier message: 08/06/2006, 12h34
  4. [Ajax] question avec onreadystatechange
    Par lhulard dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/06/2006, 14h46
  5. [Prototype] Ajax avec paramètres
    Par Tail dans le forum Bibliothèques & Frameworks
    Réponses: 5
    Dernier message: 05/01/2006, 17h16

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