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] Ajax XMLHttpRequest


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif  
    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mars 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Mars 2009
    Messages : 16
    Par défaut [AJAX] Ajax XMLHttpRequest
    bonjour,
    je vous explique mon problème, j'ai ce 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
     
    <script type='text/javascript'>
    			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;
    			}
     
     
     
     
    			function affichersousoriginerdv(){
     
    				var xhr = getXhr();
     
     
    				xhr.onreadystatechange = function(){
    				//	alert(xhr.readyState);
     
    					if(xhr.readyState == 4 && xhr.status == 200){
    						di = document.getElementById('sousrdv');
    						di.style.display = 'inline';	
    						di.innerHTML = xhr.responseText;
    					}
    				}
     
     
    				xhr.open("POST","functions.class.php",true);
     
    				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
     
    				id_origine_rdv = document.getElementById('origine_rdv').options[document.getElementById('origine_rdv').selectedIndex].value;
     
    				xhr.send("origine_rdv="+id_origine_rdv);
     
    			}
    Au niveau de la page functions.class.php
    je récupère "origine_rdv" tout est bon et je crée un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <select name="sousrdv" id="sousrdv" onchange="afficher();">
    code php(selection des option a partir de la base de donné)  
    <option value="-1" selected="selected">----</option>
    </select>
    Mon problème est que la fonction afficher qui a le même role que affichersousoriginerdv() à part que la page n'est pas la même ne fonctionne pas.
    Même si je fais alert(xhr.readyState);
    ça donne rien
    Aidez moi SVP
    Merci

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,
    di = document.getElementById('sousrdv');
    di.style.display = 'inline';
    di.innerHTML = xhr.responseText;
    1- Chez plusieurs navigateurs, "select" ne supporte pas innerHTML.
    2- Tu Montres nous la fonctions affiche() qui ne fonctionne pas, comment tu as généré ton select avec ajax et le code HTML généré de la page.

    A+.

  3. #3
    Inactif  
    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mars 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Mars 2009
    Messages : 16
    Par défaut Réponse
    Bon voila ce que j'ai en tous:
    1-Le code du script dans la page index.php
    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
     
    <script type='text/javascript'>
    			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 affichersousoriginerdv(){
     
    				var xhr = getXhr();
     
    				// On défini ce qu'on va faire quand on aura la réponse
    				xhr.onreadystatechange = function(){
    				//	alert(xhr.readyState);
    					// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    					if(xhr.readyState == 4 && xhr.status == 200){
    						di = document.getElementById('sousrdv');
    						di.style.display = 'inline';	
    						di.innerHTML = xhr.responseText;
    					}
    				}
    // Ici on va voir comment faire du post
    				xhr.open("POST","functions.class.php",true);
    				// ne pas oublier ça pour le post
    				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    				// ne pas oublier de poster les arguments
    				// ici, l'id de l'auteur
    				id_origine_rdv = document.getElementById('origine_rdv').options[document.getElementById('origine_rdv').selectedIndex].value;
    				//alert(idauteur);
    				xhr.send("origine_rdv="+id_origine_rdv);
     
    			}
     
    function afficher(){
     
    				var xhr = getXhr();
     
    				// On défini ce qu'on va faire quand on aura la réponse
    				xhr.onreadystatechange = function(){
    				//	alert(xhr.readyState);
    					// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    					if(xhr.readyState == 4 && xhr.status == 200){
    						di2 = document.getElementById('sousrdv2');
    						di2.style.display = 'inline';	
    						di2.innerHTML = xhr.responseText;
    					}
    				}
    // Ici on va voir comment faire du post
    				xhr.open("POST","functions2.class.php",true);
    				// ne pas oublier ça pour le post
    				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    				// ne pas oublier de poster les arguments
    				// ici, l'id de l'auteur
    				sousrdv = document.getElementById('sousrdv').options[document.getElementById('sousrdv').selectedIndex].value;
    				//alert(idauteur);
    				xhr.send("sousrdv ="+id_sousrdv );
     
    			}
    <script>
    2-La page index.php
    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
     
    <select name="origine_rdv" id="origine_rdv" onchange="affichersousoriginerdv();afficherresultatrdv(this.value);">
                <option value="-1" selected="selected">----</option>
                <?php
    do {  
    ?>
                <option value="<?php echo $row_selection_formualire['id_formulaire']?>"><?php echo htmlentities($row_selection_formualire['libelle_formualaire'])?></option>
                <?php
    } while ($row_selection_formualire = mysql_fetch_assoc($selection_formualire));
      $rows = mysql_num_rows($selection_formualire);
      if($rows > 0) {
          mysql_data_seek($selection_formualire, 0);
              $row_selection_formualire = mysql_fetch_assoc($selection_formualire);
      }
    ?>
            </select>
     
    <span id="sousrdv">
              <select name="sousrdv" id="sousrdv" style="display:none;" onchange="afficher()">
              <option value="-1" selected="selected">----</option>
    </select>
    3- code de lapage functions.class.php
    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
    if(isset($_REQUEST["origine_rdv"])){
    etc ................
    <select name="sousrdv" id="sousrdv" onchange="afficher()">
      <option value="-1" selected="selected">----</option>
      <?php
    do {  
    $libelle=  explode(',',$row_selection_sousorignerdv['libelle_formualaire']);
    $libelle[1];
    ?>
      <option value="<?php echo $row_selection_sousorignerdv['id_formulaire']?>"><?php echo htmlentities($row_selection_sousorignerdv['libelle_formualaire']);?></option>
      <?php
    } while ($row_selection_sousorignerdv = mysql_fetch_assoc($selection_sousorignerdv));
      $rows = mysql_num_rows($selection_sousorignerdv);
      if($rows > 0) {
          mysql_data_seek($selection_sousorignerdv, 0);
              $row_selection_sousorignerdv = mysql_fetch_assoc($selection_sousorignerdv);
      }
    ?>
    </select>
    4- Jusqu'au la ca marche nikel.

    Mais quand je veux appeler la fonction afficher rien ne se passe
    Meme une alert sur l'état de lobjet XMLHTTP , il n y a pas.

    MErci

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    sousrdv = document.getElementById('sousrdv').options[document.getElementById('sousrdv').selectedIndex].value;
    //alert(idauteur);
    xhr.send("sousrdv ="+id_sousrdv );
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sousrdv = document.getElementById('sousrdv').options[document.getElementById('sousrdv').selectedIndex].value;
                    //alert(idauteur);
                    xhr.send("sousrdv ="+sousrdv);
    <span id="sousrdv">
    <select name="sousrdv" id="sousrdv"
    Un id doit être unique dans un document.

Discussions similaires

  1. [AJAX] Ajax et XmlHttpRequest.open
    Par tostaky8 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/02/2009, 23h03
  2. [AJAX] Ajax Open XMLHttpRequest
    Par krovomi dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 02/03/2007, 10h33
  3. [AJAX] Ajax et XmlHttpRequest (marche pas sous IE)
    Par krovomi dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/03/2007, 16h39
  4. [AJAX] Objets XMLHttpRequest <-> Sql
    Par kij dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 05/11/2006, 12h41
  5. [Ajax] Problème XMLHttpRequest Firefox
    Par wwave dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 08/09/2006, 15h42

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