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] select liés ne changent pas sous internet explorer


Sujet :

AJAX

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Points : 123
    Points
    123
    Par défaut [AJAX] select liés ne changent pas sous internet explorer
    Bonjour à tous, j'ai un petit problème avec des champs select et l' évenement onChange sous internet explorer .

    J' ai trois champs qui lient les régions de france à leurs départements puis aux villes ... et qui affiche les membres du site selon ces derniers critères

    Sous firefox, pas de problemes, mais avec ie, le tri des membres se fait bien quand on change de région, les champs département et villes changent bien de contenu, mais deviennent vides et n'insert donc pas les départements associés .

    Les codes :

    html :

    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
     
    <?php
    function rech()
            {
            include 'librairie/php/connect.php';
            $regions=mysql_query("SELECT * FROM region");
            ?>
    	<select name="region" id="region" onchange="recherche_region();region();"><option value="">Région</option>
    	<?php
            while ($reg=mysql_fetch_assoc($regions))
                    {
                    ?>
    		<option value="<?php echo $reg['id']; ?>"><?php echo $reg['region']; ?></option>
    		<?php
                    }
                    ?>
    	</select>
    	<select name="departement" id="departement" onchange="recherche_departement();dept();"><option value="">Département</option></select>
    	<select name="ville" id="ville" onchange="recherche_ville();"><option value="">Ville</option></select>
    	<?php
            }
    ?>
    javascript pour region() (qui est censé remplir le select departement :

    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
     
    function region()
    	{
    	var xhr = getxhr();
    	xhr.onreadystatechange = function() 
    		{
    		if (xhr.readyState == 4 && xhr.status == 200) 
    			{
    			document.getElementById("departement").innerHTML=xhr.responseText;
    			document.getElementById("ville").innerHTML="<option value=''>Ville</option>";
    			}
    		};
     	var requete="region="+document.getElementById("region").value;
    	xhr.open("POST", "composants/recherche/region.php?getTime()", true);
    	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    	xhr.send(requete);
    	}
    et le 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
     
    <?php
    mysql_connect('mysql...','blabla','12546');
    mysql_select_db('bdd');
    if (isset($_POST['region']))
            {
            $reg=$_POST['region'];
            $departement=mysql_query("SELECT * FROM departement WHERE id_region='$reg' ORDER BY numero");
            while ($dep=mysql_fetch_assoc($departement))
                    {
                    
                    echo '<option value="'.$dep['id'].'">'.$dep['numero'].' - '.htmlentities($dep['departement']).'</option>';
                    
                    }
            }
    ?>
    Voila, sinon, la fonction departement() est assez similaire a region() donc je ne l'ai pas mise, aucun interêt .

    Voila, pour constater, rdv sur http://www.escortmove.com/index.php?session=majeur ou est chargé le code en question

    Merci milles fois par avance pour vos réponses précieuses .

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 450
    Points : 123
    Points
    123
    Par défaut
    J'ai trouvé la solution, aulieu de remplir un select déja existant au changement de valuer sur les regions ou departement, j' affiche le select récupéré dans le fichier php en ajax

    Voilou, sa pourra servir a certainesx personnes je penses

    Merci quand meme !

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Bonjour à tous,

    Je me présente vite fait quand même pour pas passer pour un profiteur ou je ne sais quoi...
    Je m'appelle Stéphane, je suis en stage en ce moment et je bloque complètement sur ce problème depuis 2 jours à peu prêt.

    J'ai fait beaucoup de recherches (sur google) mais je n'ai pas trouvé grand chose, le seul topic le plus proche de mon problème que j'ai trouvé est celui là.

    Je précise que j'avais réussi à tout faire marcher nikel et tout sur FF et compagnie avec seulement des select (sans div ou span) mais cette technique ne marche pas du tout sous IE.
    J'ai donc essayé avec les span, j'arrive à afficher une première liste liée qui dépend de la première liste "de base" rentrée en code dans la page principale.

    Mais dès que je veux afficher une liste dépendante d'une liste qui elle même dépend d'une liste, la dernière ne se rempli pas

    Je vous montre mes codes qui sont des exemples réduits au max car j'ai bien plus de liste dépendantes à afficher...
    Mon fichier principal liste.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
     
    <html>
    <head>
    <title>Exemple</title>
    <script type="text/javascript" src="oXHR.js"></script>
    <script type='text/javascript'>
     
    	function go(){
    		var xhr = getXMLHttpRequest();
    		xhr.onreadystatechange = function(){
    			if(xhr.readyState == 4 && xhr.status == 200){
    				document.getElementById("serv").innerHTML = xhr.responseText;
    			}
    		}
    		var requete="cod_group="+document.getElementById("DMDdir").value;
    		xhr.open("POST","serv.php",true);
    		xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    		xhr.send(requete);
    	}
     
    	function go2(){
    		var xhr = getXMLHttpRequest();
    		xhr.onreadystatechange = function(){
    			if(xhr.readyState == 4 && xhr.status == 200){
    				document.getElementById("agent").innerHTML = xhr.responseText;
    			}
    		}
    		var requete="cod_serv="+document.getElementById("serv").value;
    		xhr.open("POST","agent.php",true);
    		xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    		xhr.send(requete);
    }
     
    </script>
    </head>
    <body>
    	<form>
    		<label>Direction</label>
    			<?php
                                    $odbc=odbc_connect("Driver={SQL Server};Server=servdata2\sid_re7;Database=SID_RE7;", "gdt", "sdis") or die("Could Not Connect to ODBC Database!" );
     
                                    $request="select distinct orga_cod_groupement, orga_lib_groupement 
                                    from V_REF_ORGA 
                                    where nullif(orga_lib_groupement, '-') + nullif(orga_lib_groupement, '') is not null";
                                    $res=odbc_exec($odbc,$request);
                                    
                                    echo "<select name='DMDdir' id='DMDdir' onchange='go();'>";
                                    while($row = odbc_fetch_array($res)){
                                            echo "<option value='".$row["orga_cod_groupement"]."'>".$row["orga_lib_groupement"]."</option>";
                                    }
                                    echo "</select>";
                            ?>
    			<span id="serv"></span>
    			<span id="agent"></span>				
    		</form>
    	</body>
    </html>
    le fichier serv.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
     
    <?php
            header("Content-Type: text/xml");
            echo "<?xml version='1.0' encoding='utf-8'?>";
            if(isset($_POST["cod_group"])){
                    $odbc=odbc_connect("Driver={SQL Server};Server=servdata2\sid_re7;Database=SID_RE7;", "gdt", "sdis") or die("Could Not Connect to ODBC Database!" );
     
                    $request="select distinct orga_cod_groupement, orga_cod_service, orga_lib_service
                    from V_REF_ORGA
                    where orga_cod_groupement='".$_POST["cod_group"]."'";   
     
                    $res=odbc_exec($odbc,$request);
                    echo "<select name='DMDserv' id='DMDserv' onchange='go2();'>";
                    while($row = odbc_fetch_array($res)){
                            echo "<option value='".$row["orga_cod_service"]."'>".$row["orga_lib_service"]."</option>";
                    }
                    echo "</select>";
            }
    ?>
    Et le fichier agent.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
     
    <?php
            header("Content-Type: text/xml");
            echo "<?xml version='1.0' encoding='utf-8'?>";
            if(isset($_POST["cod_serv"])){
                    $odbc=odbc_connect("Driver={SQL Server};Server=servdata2\sid_re7;Database=SID_RE7;", "gdt", "sdis") or die("Could Not Connect to ODBC Database!" );
     
                    $request="select orga_matricule, orga_nom, orga_cod_section
                    from V_REF_ORGA
                    where orga_cod_service='".$_POST["cod_serv"]."'";
                    echo $_POST["cod_serv"];
     
                    $res=odbc_exec($odbc,$request);
                    echo "<select name='DMDagent' id='DMDagent'>";
                    while($row = odbc_fetch_array($res)){
                            echo "<option>".$row["orga_nom"]."</option>";
                    }
                    echo "</select>";
            }
    ?>
    Le problème c'est qu'il n'arrive pas à me récupérer valeur lors de la requête de la fonction go2, le echo $_POST["cod_serv"]; dans agent.php me renvoie undefined.

    J'avais envoyé un mail à cuisto mais il ne m'a pas répondu donc vous êtes mon dernier espoir.
    Merci par avance car là j'en peux plus, ca commence à me faire péter les plombs cette histoire, tout ca à cause de IE...

  4. #4
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Problème enfin résolu grâce au code de aikiox.
    http://www.developpez.net/forums/d10...oisieme-liste/

    Je m'en suis inspiré et j'ai vu que j'avais fait une boulette en mélangeant l'id du div serv avec l'id du select DMDserv.

    J'en pouvais plus, une ptite merde qui m'a bloqué pendant des heures...

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

Discussions similaires

  1. [AJAX] Ajax ne fonctionne pas sous internet explorer
    Par Bhaalrock dans le forum AJAX
    Réponses: 1
    Dernier message: 11/10/2013, 13h55
  2. Code javascript qui ne marche pas sous internet explorer !
    Par Contact2012 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 07/05/2010, 19h22
  3. ChangeImage ne marche pas sous Internet Explorer
    Par misa dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 19/01/2010, 10h31
  4. Réponses: 4
    Dernier message: 10/01/2007, 10h50

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