Page 1 sur 1

Passage d'un paramètre avec IE lors de la création boites dy

Posté : 02 août 2007, 06:40
par mike1155
Bonjour, j'essaie de créer des boites dynamiques en utilisant AJAX. Tout se passe bien sous Firefox mais sous IE, impossible de faire passer le paramètre avec GET. J'ai simplifié le problème de façon simplement à afficher à côté de la boîte initiale, le paramètre passé.
Vous pouvez voir la démo ici

Voici mes trois fichiers:
Le fichier de base form1.php, contient le formulaire initial:

Code : Tout sélectionner

<script type="text/javascript" src="annee_xhr.js" charset="iso_8859-1"></script> <?//début script page echo'<h2><b>Débugage AJAX - Choisis un joueur</b></h2>'; // on remplit le tableau avec les joueurs $visu_ok[]='joueur1'; $visu_ok[]='joueur2'; //on construit la boite echo '<select onchange="getannee(this.value);" name="visu_ok" size="1"> <option value="vide">choix du joueur</option>'; foreach($visu_ok as $value) {echo '<option >'.$value.'</option>';} echo '</select><span id="blocannee"></span><br /> '; ?>


Le fichier intermédiaire php appelé par le js

Code : Tout sélectionner

<?php include('../param_actuel.inc'); /** * Code qui sera aeeplé par un objet XHR et qui * retournera la liste déroulante des saisons disponibles * correspondant au joueur sélectionné. */ /* On récupère l'identifiant du joueur choisi. */ if (isset($_GET['idj'])) {$idj = $_GET['idj']; echo('Tu as clique '.$idj); } /* Sinon on retourne un message d'erreur */ else { echo("<p>Une erreur s'est produite. Le joueur sélectionné comporte une entrée invalide.</p>\n"); } ?>
et finalement mon fichier js

Code : Tout sélectionner

/** * Lister les année d'un joueur avec un objet * XMLHTTPRequest. */ /* Création de la variable globale qui contiendra l'objet XHR */ var requete = null; /** * Fonction privée qui va créer un objet XHR. * Cette fonction initialisera la valeur dans la variable globale définie * ci-dessus. */ function creerRequete() { try { /* On tente de créer un objet XmlHTTPRequest */ requete = new XMLHttpRequest(); } catch (microsoft) { /* Microsoft utilisant une autre technique, on essays de créer un objet ActiveX */ try { requete = new ActiveXObject('Msxml2.XMLHTTP'); } catch(autremicrosoft) { /* La première méthode a échoué, on en teste une seconde */ try { requete = new ActiveXObject('Microsoft.XMLHTTP'); } catch(echec) { /* À ce stade, aucune méthode ne fonctionne... mettez donc votre navigateur à jour ;) */ requete = null; } } } if(requete == null) { alert('Impossible de créer l\'objet requête,\nVotre navigateur ne semble pas supporter les object XMLHttpRequest.'); } } /** * Fonction privée qui va mettre à jour l'affichage de la page. */ function actualiserannee() { var listeannee = requete.responseText; var blocListe = document.getElementById('blocannee'); blocListe.innerHTML = listeannee; } /** * Fonction publique appelée par la page affichée. * Cette fonction va initialiser la création de l'objet XHR puis appeler * le code serveur afin de récupérer les données à modifier dans la page. */ function getannee(idj) { /* Si il n'y a pas d'identifiant de région, on fait disparaître la seconde liste au cas où elle serait affichée */ if(idj == 'vide') { document.getElementById('blocannee').innerHTML = ''; } else { /* À cet endroit précis, on peut faire apparaître un message d'attente */ var blocannee = document.getElementById('blocannee'); blocannee.innerHTML = "Traitement en cours, veuillez patienter..."; /* On crée l'objet XHR */ creerRequete(); /* Définition du fichier de traitement */ var url = 'cherche_annee.php?idj='+ idj; /* Envoi de la requête à la page de traitement */ requete.open('GET', url, true); /* On surveille le changement d'état de la requête qui va passer successivement de 1 à 4 */ requete.onreadystatechange = function() { /* Lorsque l'état est à 4 */ if(requete.readyState == 4) { /* Si on a un statut à 200 */ if(requete.status == 200) { /* Mise à jour de l'affichage, on appelle la fonction apropriée */ actualiserannee(); } } }; requete.send(null); } }
Merci pour votre aide

PS: Le problème avait été posé dans un autre message mais le titre ne correpsondant plus au problème, je me permets de recréer un nouveau post

Posté : 04 août 2007, 00:46
par Ryle
La démo fonctionne très bien chez moi (testé avec IE6)

Posté : 04 août 2007, 01:38
par Truc
IE 7 rien #-o

essaie avec un attribut "value" de l'option explicitement définie

Posté : 07 août 2007, 11:12
par mike1155
IE 7 rien #-o

essaie avec un attribut "value" de l'option explicitement définie
Merci beaucoup, avec cette modification ca marche!!!! :D