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] requete is not defined


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 95
    Points : 54
    Points
    54
    Par défaut [AJAX] requete is not defined
    Bonjour,

    J'utilise un Ajax dans un textBox qui marche parfaitement sur l'evenement onKeyUp.
    Seulement je souhaite appeler ma methode ajax (getAjax(val)) depuis une fonction javascript.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function getFullTreeFiltered(filter){
    	if(done!="done"){
    	   window.location="/afi_GP/gpTree/getFullTree.do";
    	   getAjaxTreeFilter(filter);
            }
    	done="";
    }
    Des lors, j'obtient l'erreur javascript suivant: reqAjax is not defined.
    Cette erreur survient à la premiere ligne de ma methode doAjaxTreeFilter:
    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
    ...
    	if(reqAjax){
    			reqAjax.onreadystatechange = doAjaxTreeFilter;
    			reqAjax.open("GET", "/afi_GP/gpTree/ajaxTreeFiltering.do?filter="+filterValue, true);
    			reqAjax.send("");
    		}
    	}
    	function doAjaxTreeFilter(){
    		if (reqAjax.readyState == 4) {
    	        if (reqAjax.status == 200) {
    	        	test++;
    	        	if(test==1){
    					useAjaxTreeFilter();
    				}
    	        } else {
    	            alert("There was a problem retrieving page\n" + reqAjax.statusText);
    	        }
    	     }
        }
    si quelqu'un a une idée..

  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
    Bonjour,
    et si le message était justifié ?
    Dans ton code, il est défini où, reqAjax ?

    A+
    Pour tout savoir sur l'utilisation du forum

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

  3. #3
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 95
    Points : 54
    Points
    54
    Par défaut
    c'est une variable globale defini dans la méthode précedente.
    De toute facon, la ligne qui crée l'erreur n'est accessible que par:

    reqAjax.onreadystatechange = doAjaxTreeFilter;

    or a cette ligne, reqAjax est encore valide.
    si tu veux tout 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
    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
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    	var reqAjax;
    	var test = 0;
    	function getAjaxTreeFilter(filterValue) {
    		if(window.XMLHttpRequest) {
    	    	try {
    				 reqAjax = new XMLHttpRequest();
    	        } catch(e) {req = false;}
    	    // branch for IE/Windows ActiveX version
    	    } else if(window.ActiveXObject) {
    	       	try {
    	       	   req = new ActiveXObject("Msxml2.XMLHTTP");
    	      	} catch(e) {
    	           try {
    	              req = new ActiveXObject("Microsoft.XMLHTTP");
    	           } catch(e) { req = false;  }
    			}
        	}
     
    		if(reqAjax){
    			reqAjax.onreadystatechange = doAjaxTreeFilter;
    			reqAjax.open("GET", "/afi_GP/gpTree/ajaxTreeFiltering.do?filter="+filterValue, true);
    			reqAjax.send("");
    		}
    	}
    	function doAjaxTreeFilter(){
    		if (reqAjax.readyState == 4) {
    	        if (reqAjax.status == 200) {
    	        	test++;
    	        	if(test==1){
    					useAjaxTreeFilter();
    				}
    	        } else {
    	            alert("There was a problem retrieving page\n" + reqAjax.statusText);
    	        }
    	     }
        }
     
        function useAjaxTreeFilter(){
        	var shownLines = new Array();
        	var hiddenLines = new Array();
        	var root = reqAjax.responseXML.getElementsByTagName("ROOT")[0];
        	reqAjax.abort();
        	var i = 0;
        	var j = 0;
        	var hh;
        	var gg;
        	var nblines = root.childNodes.length;
        	var nblinetohide = root.getElementsByTagName("LINE").length;
        	var mytree = document.getElementById("treediv").childNodes[1];
        	if(root.getElementsByTagName("LINE")[0]=="caline"){
        		while(root.getElementsByTagName("SHOWLINE")[i]!=null){
        		sline = root.getElementsByTagName("SHOWLINE")[i];
        		var numline = sline.firstChild.nodeValue;
        		var t = 2*(parseInt(numline))+1;
        		var lineToShow = mytree.childNodes[t];
        		lineToShow.setAttribute("style", "");
        		//lineToShow.setAttribute("onmouseover", "getAjaxSaveTree()");
        		i++;
        		}
        	}
        	else{
     
    	    	while(root.getElementsByTagName("SHOWLINE")[i]!=null){
    	    		sline = root.getElementsByTagName("SHOWLINE")[i];
     
    	    		//récupération du numéro de line.
    	    		var numLineNode = sline.getElementsByTagName("NUM")[0];
    	    		var numline = numLineNode.firstChild.nodeValue;
    	    		//récupération du href Expansion
    	    		var expandNode = sline.getElementsByTagName("HREF1")[0];
    	    		var expandHref = expandNode.firstChild.nodeValue;
    	    		//récupération du href Expansion
    	    		var selectNode = sline.getElementsByTagName("HREF2")[0];
    	    		var selectHref = selectNode.firstChild.nodeValue;
    	    		//affichage de la ligne
    	    		var t = 2*(parseInt(numline))+1;
    	    		var lineToShow = mytree.childNodes[t];
    	    		lineToShow.setAttribute("style", "");
    	    		//changement des href. 1/3
    	    		if(lineToShow.getElementsByTagName("A").length==2){
    		    		var expandA = lineToShow.getElementsByTagName("A")[0];
    		    		var selectA = lineToShow.getElementsByTagName("A")[1];
    		    		expandA.setAttribute("href", expandHref);
    		    		selectA.setAttribute("href", selectHref);
    	    		}
    	    		else{
    	    			var selectA = lineToShow.getElementsByTagName("A")[0];
    	    			selectA.setAttribute("href", selectHref);
    	    		}
     
    	    		i++;
    	    	}
    	    	while(root.getElementsByTagName("LINE")[j]!=null){
    	    		line = root.getElementsByTagName("LINE")[j];
    	    		var numline = line.firstChild.nodeValue;
    	    		var t = 2*(parseInt(numline))+1;
    	    		var lineTohide = mytree.childNodes[t];
    	    		lineTohide.setAttribute("style", "display:none");
    	    	//	lineTohide.setAttribute("style", "");
    	    		j++;
    	    	}
    	    }
        	var root = mytree.childNodes[1];
        	root.setAttribute("style", "");
    	}

  4. #4
    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
    Pb récurrent des déclaration de fonction dynamiques.
    Il faudrait pourvoir passer reQajax (l'objet instancié, pas juste le nom de la variable) en paramètre à doAjaxTreeFilter.
    ... mais la syntaxe ne le permet pas.
    Tu as essayé de remplacer "reqAjax" par "this" dans doAjaxTreeFilter ??

    A+
    Pour tout savoir sur l'utilisation du forum

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

  5. #5
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 95
    Points : 54
    Points
    54
    Par défaut
    J'ai changer l'emplacement du lancement de ma methode ajax, et ca marche...
    Etrange mais satisfaisant...
    Mais j'essayerai avec le this.

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

Discussions similaires

  1. "openlayers is not defined" sur chargement de ma page carte en Ajax
    Par fabrob11 dans le forum IGN API Géoportail
    Réponses: 8
    Dernier message: 16/12/2013, 15h03
  2. [AJAX] Ajax is not defined
    Par Brunettia dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/04/2008, 10h53
  3. ajax dynamic list event is not defined sous firefox
    Par djanke dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/02/2008, 16h31
  4. [AJAX] 'is not defined' Javascript /Ajax
    Par RichardP dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 12/05/2007, 14h27
  5. Requete avec NOT IN
    Par Bibicmoi dans le forum Requêtes
    Réponses: 9
    Dernier message: 12/09/2005, 11h19

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