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] Un Get en Ajax récalcitrant


Sujet :

AJAX

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 21
    Par défaut [AJAX] Un Get en Ajax récalcitrant
    Bonjour,

    Je pensais au départ que mon souci était liée à une fichu bibliothèque de JQuery mais il semble que le souci soit plus profond...

    Je suis sur une page html statique et je tente de faire un appel ajax à un programme externe qui fonctionne (en utilisant prototype j'ai bien les appels et les réponse du dit programme).

    N'arrivant pas à codé l'appel via JQuery je suis revenu aux bases de l'ajax

    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
    // JavaScript Document
    function getXhr(){
      var xhr = null; 
      if(window.XMLHttpRequest) // Firefox et autres
        xhr = new XMLHttpRequest(); 
      else if(window.ActiveXObject){ // Internet Explorer 
        try {
          xhr = new ActiveXObject("Msxml2.XMLHTTP");
    		} catch (e) {
          xhr = new ActiveXObject("Microsoft.XMLHTTP");
        }
    	}
      else { // XMLHttpRequest non supporté par le navigateur 
        alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
        xhr = false; 
    	} 
      return xhr
    }
     
    /**
    * Méthode qui sera appelée sur le click du bouton
    */
    function GoRechercheAnnuaire(annu_text , annu_critere , nb_start){
      var col_g_txt  = 	'<div id="col_gauche"><div><img alt="" class="float_left" src="images/interface/tetieres_coin_gauche1.gif" /><h2 class="tetiere4">Annuaire</h2></div><div id="autres_annu"><h4 class="droite couleur03">communaut&eacute;</h4>Vous pouvez &eacute;galement, sous Lotus, consulter les annuaires suivants :<br /><a href="#" class="js_lien_externe">Annuaire Aramice</a><br /><a href="#" class="js_lien_externe">Annuaire Audiens</a><br /><a href="#" class="js_lien_externe">Annuaire Novalis-Taitbout</a></div><div id="col_gauche_site"></div></div>';
    //  alert('coucou annuaire_js qs,fmkqsflkmqsklfkqsmkfmqls');
    //  alert(col_g_txt);
      var CompteArebours = new Date();
    //  alert('seconde = ' + CompteArebours.getSeconds());
      var request = 'http://vpa1ddoe1/test/W3/offi.nsf/GoRechercheAnnuaire?OpenAgent&annuaire_text='+annu_text
    	+'&annuaire_critere='+annu_critere+'&start='+nb_start+'&time=' + CompteArebours.getSeconds();
    //	alert(request);
     
    	document.getElementById("acc_content").innerHTML = col_g_txt + '<div id="col_centrale"></div>';
     
    	var xhr = getXhr();
     
    	xhr.open("GET",request,true);
     
      // On défini ce qu'on va faire quand on aura la réponse
      xhr.onreadystatechange = function(){
        // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
        if(xhr.readyState == 4){
          document.getElementById("col_centrale").innerHTML = "La réponse est revenu - ReadyStatus = " + xhr.readyState + " / status = " + xhr.status;
          if (xhr.status == 200){
            document.getElementById("col_centrale").innerHTML = xhr.responseText;
          }else{
            document.getElementById("col_centrale").innerHTML = "Problème la répone n'est pas 200 - status = " + xhr.status;
          }
        }else{
          document.getElementById("col_centrale").innerHTML = "La requet est en cours - ReadyStatus = " + xhr.readyState;
        }
      }
     
    	xhr.send(null);
    }
    Le souci c'est que ma page se recharge mais ne garde pas mes modifications de contenu.
    Tant que la requête n'est pas finaliser on voie bien le status changer dans le conteneur html "col_centrale" mais une fois la requête finaliser il semble que la page se recharge.

    Voici le code du form html qui appel la fonction
    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
    <form name="RechercheAnnuaire" onSubmit="GoRechercheAnnuaire($('#annuaire_text').val() , $('#annuaire_critere').val() , '0')">
    	<div class="recherche_annuaire"><h5><label for="annuaire_text">Annuaire</label></h5>
    		<input id="annuaire_text" type="text" value="ma recherche" onclick="$('annuaire_text').val('');" /><br />
    		<label class="couleur02 gras par" for="annuaire_critere">par</label>
    		<select id="annuaire_critere">
    			<option value="Searchnom">nom</option>
    			<option value="Searchprenom">pr&eacute;nom</option>
    			<option value="Searchnumero_de_telephone_poste">n° de poste</option>
    			<option value="Searchcode_etablissement">code &eacute;tablissement</option>
    			<option value="Searchlieu_ville">localisation</option>
    			<option value="Searchpiece">pi&egrave;ce</option>
    			<option value="Searchresponsable">responsable</option>
    			<option value="Searchlibelle_service">service</option>
    			<option value="Searchlibelle_departement">branche</option>
    		</select>
    		<a onclik="submit()" style="cursor:pointer">
    		<input class="recherche_annuaire_submit" src="images/interface/bouton_ok_fond_grisfonce.gif" title="Chercher dans l'annuaire" type="image" value="Ok" />
    		</a>
    	</div>
    </form>

  2. #2
    Membre Expert Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Par défaut
    Comment tu as défini ta fonction submit() ?

    Typiquement, ton probleme vient du fait que lorsque tu cliques tu ton lien, tu déclenche ta fonction submit et comme tu ne fais pas un return false pour empecher l'action du click de se propager, et bien tu changes de page.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 21
    Par défaut
    Merci de ta réponse c'est effectivement le souci...

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/04/2012, 22h46
  2. [AJAX] Requete GET sur un fichier php
    Par Julleb dans le forum AJAX
    Réponses: 6
    Dernier message: 21/05/2009, 12h12
  3. [AJAX] Envoyer une valeur par get avec AJAX
    Par beegees dans le forum AJAX
    Réponses: 1
    Dernier message: 21/03/2009, 12h57
  4. Réponses: 4
    Dernier message: 03/02/2009, 10h59
  5. [jQuery]Ajax et get avec un fichier php
    Par zabibof dans le forum jQuery
    Réponses: 3
    Dernier message: 08/07/2008, 09h32

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