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

JavaScript Discussion :

[Syntaxe]rafraichir une liste avec internet explorer


Sujet :

JavaScript

  1. #1
    Membre régulier Avatar de achos
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 147
    Points : 84
    Points
    84
    Par défaut [Syntaxe]rafraichir une liste avec internet explorer
    Bonjour tout le monde,
    j'ai 2 pages HTML suivante :
    index.html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <form name="monform">
    <select name="choix" id="choix">
    <option value="rabat">rabat</option>
    <option value="paris">paris</option>
    <option value="berlin">berlin</option>
    </select>
    <input type="button" value="new" onClick="window.open('popup.html','ajouter_ville','width=200,height=200')">
    </form>
    ajout.html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <script language="javascript">
    function refreshPage(newValue){
      var w = window.opener.document.getElementById('choix');
      var content = w.innerHTML;
       content += '<option value="' + newValue + '">' + newValue + '</option>';
       w.innerHTML = content;
    }
    </script>
    <form name="form">
    ville <input type="text" name="ville" onBlur="refreshPage(this.value)">
    <input type="button" value="ok" onClick="self.close();">
    </form>
    mon problème est que sous internet explorer la liste n'est pas affichée, elle est toute vide.
    j'ai tester le même script sous Mozilla Firefox et Opera et il fonctionne bien.
    pourquoi ça ne marche pas avec IE ? est ce qu'il y'a un autre moyen pour le faire fonctionner correctemet avec IE.

    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    bonjour,

    on ne créé pas une option avec innerHTML.
    cf. http://sergep.developpez.com/tutorie...ge=page_5#LV-B
    Puis regarde le paragraphe V-B-2-b où est expliqué comment est créé un select et ses options et le paragraphe V-B-2-c où est expliqué l'insertion d'une option dans la liste.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var elOption = new Option("Option", "valeur", false, false);
    var elSelect= document.getElemenById("idSelect");
     
    //Ajout dans le select de l'option
    elSelect.options.add(elOption);

  3. #3
    Membre régulier Avatar de achos
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 147
    Points : 84
    Points
    84
    Par défaut
    Merci bien pour la réponse et pour l'article.
    je vais essayé de modifier mon script et on verra ce que ça donne.

  4. #4
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    Citation Envoyé par achos
    Merci bien pour la réponse et pour l'article.
    je vais essayé de modifier mon script et on verra ce que ça donne.
    tiens moi au courant

  5. #5
    Membre régulier Avatar de achos
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 147
    Points : 84
    Points
    84
    Par défaut
    j'ai essayé avec ce script mais ca ne donne rien.
    j'ai pas bien compris comment ça fonctionne, je veux juste savoir quel est le problème de mon script cité auparavent avec le navigateur internet explorer.

  6. #6
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    Je me suis appuyé sur ces exemples pour ton script
    http://www.developpez.net/forums/sho...d.php?t=271424

    Dans un premier temps, j'accèdais à ta liste (getElementById()) dans une fonction de la pop-up et je la mettais à jour. L'ennui est que cela faisait planter IE. J'ai donc procédé autrement :

    Dans la pop-up j'appelle la fonction ajouterVille() où je récupère la valeur de l'input.

    Puis j'appelle la fonction ajouter() contenue dans index.html et à qui je transmets le nom de la ville et dans laquelle je mets à jour la liste. Du coup, j'accède à la liste des ville non plus à partir de la pop-up mais à partir de la fenêtre "opener".

    J'ai donc refait ton code :
    index.html
    Code html : 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
     
    <html>
    <head>
    <title></title>
     
    <script type="text/javascript">
    <!--
    var chargeOk = "false";
     
    function ouvreFille()
    {
     if (chargeOk=="false")  //pour vérifier que la pop-up a été ouverte
         window.open('popup.htm','ajouter_ville','width=400,height=200,status=yes');
    }
     
    function ajouter(ville)
    {
      var liste = document.getElementById("choix");
      var elOption = new Option(ville, ville, false, false);
     
      //Ajout dans le select de l'option
      liste.options.add(elOption);
      alert(ville+" a été ajoutée à la liste");
     
    }
    //-->
    </script>
     
    </head>
     
    <body>
    <form id="monform">
     
      <select id="choix">
      <option value="rabat">rabat</option>
      <option value="paris">paris</option>
      <option value="berlin">berlin</option>
      </select>
     
      <input type="button" value="new" onclick="ouvreFille()">
     
    </form>
     
    </body>
     
    </html>

    popup.html
    Code html : 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
     
    <html>
    <head>
    <title></title>
     
    <script type="text/javascript">
    <!--
    function charge()
    {
     //on confime a la fenetre mere que la pop-up est ouverte
     window.opener.chargeOk = "true";
    }
    function decharge()
    {
     //on confime a la fenetre mere que la pop-up est fermee
     window.opener.chargeOk = "false";
    }
     
    function ajouterVille()
    {
      var ville = document.getElementById("idText").value;
      //on transmet a la fonction ajouter() de la fenetre mere le nom de la ville
      window.opener.ajouter(ville);
    }
     
    function fermer()
    {
     window.close();
    }
     
    //-->
    </script>
     
     
    </head>
     
    <body onload="charge()" onunload="decharge()">
     
    Nom de la ville à ajouter&nbsp;:
    <input type="text" value="" id="idText" size="40">
    <br><br>
    <input type="button" value="Ajouter" onclick="ajouterVille()">
    <input type="button" value="Fermer fenêtre" onclick="fermer()">
     
     
    </body>
     
    </html>

  7. #7
    Membre régulier Avatar de achos
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 147
    Points : 84
    Points
    84
    Par défaut
    Merci bcp pour votre réponse.
    ça marche trés bien avec IE, je veux seulement savoir si je peut faire apparaitre la ville que j'ai ajouter comme option par défaut (selected=selected) lorsque je revient a ma page d'index.

    Merci encore

  8. #8
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    Citation Envoyé par achos
    Merci bcp pour votre réponse.
    ça marche trés bien avec IE, je veux seulement savoir si je peut faire apparaitre la ville que j'ai ajouter comme option par défaut (selected=selected) lorsque je revient a ma page d'index.

    Merci encore
    Je savais que tu allais me demander ça


    dans index.html : après l'insertion dans la liste, met l'option en "selected".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function ajouter(ville)
    {
      var liste = document.getElementById("choix");
      var elOption = new Option(ville, ville, false, false);
     
      //Ajout dans le select de l'option
      liste.options.add(elOption);  //insertion de l'option
    elOption.selected = "selected"; //la selectionner ensuite
    
      alert(ville+" a été ajoutée à la liste");
     
    }
    Par contre, si il y a une option sélectionnée, je me demande si tu ne dois pas la déselectionner avant, et donc parcourir toute la liste et faire pour chaque option (j'ai un doute sur le code):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for (i=0; i<liste.options.length;i++)
    liste.options[i].selected="";

  9. #9
    Membre régulier Avatar de achos
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 147
    Points : 84
    Points
    84
    Par défaut
    merci bien

    té le meilleure
    Et qu'est ce que vous pensez du script que j'ai envoyé sur l'autre forum.

    et comment je peux ajouter l'option selected dans mon script.
    Le voilà mon script =

    index.html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <form name="f_ajout">
    <label> Ville : 
    	<select name="ville">
    		<option value="rabat">rabat</option>
    		<option value="rabat">paris</option>
    		<option value="rabat">rome</option>
    	</select>
    </label>
    <input type=button value="new" onClick="window.open('popup.html','ajouter_ville','width=200,height=200,top=200,left=300').focus();"><br>
    </form>
    popup.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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    <html>
    <head>
    <title>Ajouter une ville</title>
    <script language="javascript">
    	function Valider(form){
    		var bval = true;
     
    			if (form.champ.value=="" && bval){
    				alert('Veuillez saisir la ville');
    				bval = false;
    				form.champ.focus();
    			}
     
    			if (bval){
     
    				var nouvelleOption = window.opener.document.createElement("option");
    				  nouvelleOption.value = form.elements['champ'].value;
    				  nouvelleOption.appendChild(window.opener.document.createTextNode(form.champ.value));
    				  window.opener.document.forms["f_ajout"].ville.appendChild(nouvelleOption);
    				} 
     
    		return bval
    	}
    </script>
    </head>
     
    <body onLoad="document.f1.champ.focus();">
    <form name="f1" onSubmit="return Valider(this);">
    <h4>Ajouter une ville</h4>
    <input type="text" name="champ">
    <input type="submit" value="Enregistrer" onClick="self.close();">
    </form>
    </body>
    </html>
    merci infiniment

  10. #10
    Membre régulier Avatar de achos
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 147
    Points : 84
    Points
    84
    Par défaut
    j'ai trouvé il suffit juste d'ajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    nouvelleOption.selected = 'selected';
    je me suis inspiré du script que vous m'avez donné merci bcp.
    même si j'ai une option déjà sélectionnez par défaut, elle est remplacer par celle que je vient d'ajouter.
    j'ai tester ce script avec IE et FF et il fonctionne à merveille.


    Thank you very much

  11. #11
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par achos
    même si j'ai une option déjà sélectionnez par défaut, elle est remplacer par celle que je vient d'ajouter.
    Tu es sûr que c'est pas juste le 1° "selected" qui est pris ?
    En tous cas c'est le cas si tu le fais en dur (en HTML) ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  12. #12
    Membre régulier Avatar de achos
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 147
    Points : 84
    Points
    84
    Par défaut

    avant d'appeler la popup j'ai une option "choisir" sélectionner par défaut (selected='selected').
    aprés l'appel de la page popup et on ajoutant la nouvelle option je lui attribut la methode (selected='selected') et elle est automatiquement sélectionneé à la place de l'ancienne option qui est "choisir".
    c'est comme ça que ça marche et je ne voit pas où se trouve le pb.

  13. #13
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    Citation Envoyé par E.Bzz
    Tu es sûr que c'est pas juste le 1° "selected" qui est pris ?
    En tous cas c'est le cas si tu le fais en dur (en HTML) ...

    A+
    c'est pour ça que je lui proposait de "déselectionner" les autres options avant de faire un selected sur l'option ajoutée. Ceci dit, sa liste n'a pas l'attribut "multiple" donc a priori la dernière option sélectionnée annule la sélection de la précédente.

  14. #14
    Membre régulier Avatar de achos
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 147
    Points : 84
    Points
    84
    Par défaut
    Oui c'est tout à fait comme ça.
    d'ailleur j'ai aucun pb et ca marche trés bien que ça soit IE ou FF

    Merci

Discussions similaires

  1. Réponses: 11
    Dernier message: 13/11/2008, 23h18
  2. Centrage d'une page avec Internet Explorer
    Par kuja2053 dans le forum Mise en page CSS
    Réponses: 12
    Dernier message: 14/09/2007, 12h42
  3. Réponses: 3
    Dernier message: 03/10/2006, 06h00
  4. rafraichir une liste avec un <SELECT>
    Par karibouxe dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 20/02/2006, 09h05
  5. Forcer une page à s'ouvrir avec Internet Explorer
    Par alexbubs dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 31/10/2005, 10h32

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