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 :

actualiser une liste deroulante sans actualiser la page


Sujet :

JavaScript

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

    Informations forums :
    Inscription : Février 2007
    Messages : 198
    Points : 85
    Points
    85
    Par défaut actualiser une liste deroulante sans actualiser la page
    bonjour, je recherche un moyen d'actualiser une liste déroulante sans réactualiser toute ma page; je m'explique:

    J'ai une liste dans un formulaire contenant des SIRET d'organismes de formation et un bouton permettant d'ajouter un organisme ne figurant pas dans ma liste. Et je voulais pouvoir mettre ma liste a jour dès qu'une personne ajoute un organisme sans avoir à réactuliser toute la page.

    Avant que vous me disiez que c'est impossible (comme on me la dit quasiment à chaques fois), j'ai trouvé une solution, qui en théorie devrait fonctionner mais j'ai quelques souci coté pratiques; voici l'idée que j'ai eu: tout simplement faire un ajout depuis ma page ajout d'organisme dans ma liste se trouvant dans ma première page.

    Je suis peut être pas très clair, alors voici mon code commenté:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    ajouter("ok","Portprojet"); //lancement de la fonction ajouter()
    function ajouter(txt,liste){
    	//1-créé un objet option (c'est là que ça plante)
    	var nouveauOption = document.createObject("OPTIONS");
     
                 //2-définit les propriétés de l'oblet créé
    	nouveauOption.text = txt;
    	nouveauOption.value = txt;
     
                 //3-Ajout dans ma liste en page 1
    	window.opener.form1.elements[liste].options.add(nouveauOption);
     
    }
    ce code se trouve dans ma page 2
    je pense que ça vient de mon document.createObject("OPTIONS");
    je sais pas ce que je dois mettre à la place de document, vu que la liste n'est pas sur cette page.
    je pense que le reste fonctionne, ya pas de raison j'ai fait le test suivant, qui me laisse penser qu'il n'y a aucun pb à accéder à un élément de mon autre page.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(window.opener.form1.elements[liste].options[3].text);
    Ce test me retourne bienle troisième élément de ma liste.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    soit à partir d'un popup ou d'un iframe ou un frame ... ou encore avac ajax ...

    pour les première methodes, il y a eu des posts récemment ...

    http://www.developpez.net/forums/sho...d.php?t=487460

    pour ajax faire une recherche sur google avec:
    "ajax siddh developpez" clicker sur aller plus loin ...

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 211
    Points : 196
    Points
    196
    Par défaut
    A mon avis, tu peux faire beaucoup plus simple:
    Tu n'utilises Ajax que si tu veux mettre ta nouvelle option dans la base de données - pour appeler ton script coté serveur.

    Tu fais juste sur ton bouton insérant la nouvelle entrée: onclick="var sel=document.getElementById('ton_champ_select'); sel[sel.length] = new Option('text','value');"

    Et dans la mesure ou tes valeurs vont certainement venir des champs que tu viens de remplir, au final ca devrait ressembler a ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    onclick="var sel=document.getElementById('ton_champ_select'); sel[sel.length] = new Option(document.getElementById('ton_champ_texte').value,document.getElementById('ton_champ_valeur').value);document.getElementById('ton_champ_texte').value='';document.getElementById('ton_champ_valeur').value='';"
    N'oublie pas de mettre les IDs sur tes champs!

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 198
    Points : 85
    Points
    85
    Par défaut
    J'arrive à ajouter un element a ma liste par js sans actualiser ma page, là n'est pas le pb.

    Mon souci c'est de le faire depuis le popup:

    voilà ou j'en suis:

    J'ai créé une fonction qui fait ce que tu as dis nabab dans ma page mère:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function ajouter(txt,liste){
     
    	nouvel_element = new Option(txt,txt);//mavaleur et mon texte son identiques à chaques fois.	
     
    	document.form1.elements[liste].options[document.form1.elements[liste].length] = nouvel_element;
     
    }
    si j'appel cette fonction depuis ma page principale pas de souci, par contre ce que je voulais c'est que dès que je valide le formulaire sur mon popup (onsubmit) il me lance la fonction ajouter alors j'ai fait ce qui suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     onSubmit="window.opener.ajouter('ok','Portprojet');"
    je n'ai aucun mssage d'erreur, mais ça ne fonctionne pas

    edit: pardon, ca fonctionne, je sais pas pourquoi ca n'a pas marché la première fois, mais en rééssayant, ca fonctionne merci à tous.

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    self.opener ?


    dans la mère :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <script type='text/javascript'>
    function mother(){alert('hello')}
    var popup=window.open('fille.htm')
    </script>
    dans la fille :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <script type='text/javascript'>
    function daughter(){self.opener.mother()}
    </script>
    </head>
    <body onload="daughter()">
    </body>
    J'obtiens bien l'alert, donc sur le onload de la fille la focntion de la mère est bien lancée

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 198
    Points : 85
    Points
    85
    Par défaut
    oui merci SpaceFrog ca fonctionne meme avec le window, j'ai mis une modif dans mon poste précédent, ca n'a pas fonctionné la premiere fois, j'ai du reactualiser avnt que la page soit complètement sauvegardé mais j'ai refermé et réouvert ma page et là tu as raison tout fonctionne.
    Vraiment désolé, merci encore à tous.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/09/2013, 18h18
  2. [PHP 5.0] Actualiser une liste de choix selon les variables de la page
    Par Contact2012 dans le forum Langage
    Réponses: 2
    Dernier message: 08/06/2010, 23h05
  3. Actualiser une liste déroulante d'une autre page
    Par philippef dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 24/11/2008, 14h17
  4. actualisation d'une liste deroulante
    Par pascale86 dans le forum VBA Access
    Réponses: 20
    Dernier message: 14/11/2007, 21h27
  5. Actualiser une liste déroulante
    Par audrey_ dans le forum ASP
    Réponses: 14
    Dernier message: 25/01/2006, 12h57

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