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 et innerHTML sous IE(9)


Sujet :

AJAX

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 22
    Par défaut [AJAX] AJAX et innerHTML sous IE(9)
    Bonjour !

    Je rencontre un petit soucis avec une liste liée sous IE9, elle fonctionne parfaitement sous Firefox mais sous IE rien, Je sais que le sujet à déjà été soulevé mais je n'ai trouvé aucune réponse claire.

    Alors voila pour mon 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
     
    <script type='text/javascript'>
    function actualiserCombo()
    {
    	var xhr = getXhr();
    	// 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 && xhr.status == 200){
    			leselect = xhr.responseText;
    			// On se sert de innerHTML pour rajouter les options a la liste
    			document.getElementById('UC').innerHTML = leselect;
    		}
        }
        // Ici on va voir comment faire du post
        xhr.open("POST","Combo_ajax.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, on regarde ce qui est séléctionné dans la combo1
    	sel = document.getElementById('Nom');
    	idUser = sel.options[sel.selectedIndex].value;
    	var data ="idUser=" + idUser;
        // On envois la requete
    	xhr.send(data);
    }
    </script>
    Mes recherches m'ont permis de me tourner vers le innerHTML qui n'est pas intelligemment compatible avec IE. Je cherche donc une solution pour pallier ce problème



    Voici mon Combo_ajax.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
     
    <?php
    header('Content-Type: text/html; charset=UTF-8');
    if (isset($_POST['idUser']) and ($_POST['idUser'] != ""))
    {
        $dbconn = pg_connect("host=**** port=5432 dbname=**** user=***** password=*******"); 
     
    		$query = "SELECT ".Chr(34)."id.UC/DC/DF".Chr(34).", ".Chr(34)."UC/DC/DF".Chr(34)."from auriga.".Chr(34)."ESSSE_Stat_Intervention_2".Chr(34)."WHERE ".Chr(34)."id.Groupe".Chr(34)." = ".$_POST['idUser']." Order By ".Chr(34)."UC/DC/DF".Chr(34);
    		$result = pg_query($query) or die('Échec de la requête : ' . pg_last_error());
    		$arrP = pg_fetch_all($result);
     
    		pg_free_result($result);
    		pg_close($dbconn);
     
    		ini_set("memory_limit","512M");
    		session_start();
    		if ($arrP != null) 
    		{
    			$dc="";
    			echo "<option value='9999'>Tous les Modules </option>";
    			foreach($arrP as $array) 
    			{
    				if ($array['id.UC/DC/DF']!= null AND $array['UC/DC/DF'] != Null AND $dc != $array['UC/DC/DF'])
    				{
    					echo '<option value="'.$array['id.UC/DC/DF'].'">'.$array['UC/DC/DF'].'</option>';
    					$dc = $array['UC/DC/DF'];
    				}
    			}
    		}
    }
    ?>

    Si quelqu'un a une idée je suis preneur.
    Merci d'avance
    Cordialement
    RobertHue

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 22
    Par défaut
    Citation Envoyé par RobertHue Voir le message
    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
     
    <?php
    header('Content-Type: text/html; charset=UTF-8');
    if (isset($_POST['idUser']) and ($_POST['idUser'] != ""))
    {
        $dbconn = pg_connect("host=**** port=5432 dbname=**** user=***** password=*******"); 
     
    		$query = "SELECT ".Chr(34)."id.UC/DC/DF".Chr(34).", ".Chr(34)."UC/DC/DF".Chr(34)."from auriga.".Chr(34)."ESSSE_Stat_Intervention_2".Chr(34)."WHERE ".Chr(34)."id.Groupe".Chr(34)." = ".$_POST['idUser']." Order By ".Chr(34)."UC/DC/DF".Chr(34);
    		$result = pg_query($query) or die('Échec de la requête : ' . pg_last_error());
    		$arrP = pg_fetch_all($result);
     
    		pg_free_result($result);
    		pg_close($dbconn);
     
    		ini_set("memory_limit","512M");
    		session_start();
    		if ($arrP != null) 
    		{
    			$dc="";
    			echo "<option value='9999'>Tous les Modules </option>";
    			foreach($arrP as $array) 
    			{
    				if ($array['id.UC/DC/DF']!= null AND $array['UC/DC/DF'] != Null AND $dc != $array['UC/DC/DF'])
    				{
    					echo '<option value="'.$array['id.UC/DC/DF'].'">'.$array['UC/DC/DF'].'</option>';
    					$dc = $array['UC/DC/DF'];
    				}
    			}
    		}
    }
    ?>
    J'ai résolu mon problème tout seul finalement, si jamais ca peut servir a quelqu'un :
    -j'ai mis mon <SELECT>...</SELECT> dans une <div id=combo">
    -à la place de document.getElementById('UC').innerHTML = leselect;
    je fais document.getElementById('combo').innerHTML = leselect;
    - je fais des echos de select dans mon combo_ajax.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    echo "<select name=\"UC\" id=\"UC\" onchange=go()>
    	<option value=''></option>";
    // remplissage des autre options avec une boucle
    echo "</select>";

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 30/08/2011, 16h17
  2. [AJAX] Ajax ne marche pas sous IE pour MAC
    Par sami_c dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 26/06/2007, 14h52
  3. [AJAX] innerHTML sous IE
    Par atar64 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 11/04/2007, 20h57
  4. Réponses: 2
    Dernier message: 23/04/2006, 21h02
  5. [AJAX] probleme avec innerhtml
    Par GTJuanpablo dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 19/03/2006, 13h21

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