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 :

Recharger liste déroulante javascript


Sujet :

JavaScript

  1. #1
    Membre averti
    Inscrit en
    Février 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 45
    Par défaut Recharger liste déroulante javascript
    Bonjour à tous,

    Voila mon problème : j'ai une liste déroulante(par exemple des fonctions dans une entreprise) qui se charge bien entendu à partir d'une base de donnée. A coté de cette liste j'ai crée un bouton ajouter qui permet d'ajouter une fonction dans la base de donnée(grace a une popup). Ce que je souhaiterais c'est que lorsque j'ajoute cette fonction elle soit ajoutée dans la liste déroulante sans recharger la page pour pouvoir garder les informations deja saisies.
    J'espère avoir été assez clair, si vous avez besoin de plus de précisions faites le moi savoir !

    Merci par avance

  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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    tu récupères les éléments dasn la popup au moyen d'une requete ?
    sous quelle forme ?
    On peut rebasculer des éléménets à partir de la popup vers la mère et reconstruire la liste en javascript


    sinon faut regarder du coté d'ajax ...
    http://siddh.developpez.com/articles/ajax/
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre averti
    Inscrit en
    Février 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 45
    Par défaut
    Bonjour,

    Je ne comprends pas très bien vos premières questions.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a><img src="../img/add.png" border=0 title="Add a function" onClick="window.open('add_function.php','function','width=250,height=60,scrollbars=no,resizable=no');"></a>
    Donc j'ouvre cette popup comme cela, elle ne contient qu'une zone de texte et un bouton submit qui insère les données dans la base et ensuite elle se ferme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<SCRIPT LANGUAGE="Javascript">window.close();</script>';
    Sinon au niveau Ajax je n'y connais rien, si c'est la seule solution, pouvez-vous m'orienter ?

    Merci par avance

  4. #4
    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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    le principe ...
    envoyer la requete au serveur et recevoir les informations en retour ...


    tu pourrais profiter d'avoir une popup ouverte pour faire retourner à ta page de traitement php des infos dans la popup par exemple dans des champs hidden

    et ensuite passer les éléments dasn la page mère avant de fermer la popup ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre averti
    Inscrit en
    Février 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 45
    Par défaut
    D'accord, je vois ce que tu veux dire.

    J'ai deja fait la récupération du label de la derniere fonction que l'on vient d'insérer.
    Mais ensuite je ne vois pas comment la faire passer à mon autre page et comment l'ajouter dans la liste déroulante !

    Merci par avance

  6. #6
    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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    self.opener.document.forms['nomduform'].elements['nomduselect'].options[0].value=tavaleurrecuperee;
    self.opener.document.forms['nomduform'].elements['nomduselect'].options[0].innerHTML=tontexterecupere;
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre averti
    Inscrit en
    Février 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 45
    Par défaut
    Pourrais-tu détailler un peu plus la procédure si ce n'est pas trop demander ?(je suis novice en javascript)

    Car j'avoue que je suis un peu perdu, je pense que le code que tu m'as donné est a insérer dans la page ou est la liste déroulante mais sur quel évènement ?

    De plus, je ne vois pas comment faire passer les valeurs récupérées dans la popup(pour l'instant sous la forme $resfunction['id'] et $resfunction['label']) dans l'autre page sans utiliser la methode post et donc sans recharger la page.

    Merci par avance

  8. #8
    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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    à insérer dans le popup sur le onlaod de la page retour php
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #9
    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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    si je comprends bien tu as une popup qui contient un form ...

    ce form à pour action une page qui fait une requete

    il suffit dans cette page de requete de créer un form avec des champs cachées dans lesquel tu mets les résultats de la requete ... ou dans des variables javascript ..

    ensuite sur le onload de cette page
    tu bascule le contenu des inputs dasn la page mère avec le lencement d'une fonction genre :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function SendToMum(){
    self.opener.document.forms['nomduform'].elements['nomduselect'].options[0].value=tavaleurrecuperee;
    self.opener.document.forms['nomduform'].elements['nomduselect'].options[0].innerHTML=tontexterecupere;
    self.opener.focntiondefermeturedupopup();
    }
    et du coup dans le onload de ta page :
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  10. #10
    Membre averti
    Inscrit en
    Février 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 45
    Par défaut
    Merci pour tout cela mais j'ai encore des questions :

    D'une part, la page mere se nomme : rh_adduser.php, la popup se nomme add_function.php et la page de requete insert_function.php.Cela sera plus clair pour savoir de quelle page on parle.

    Donc pour résumer dans ma page insert_function.php je dois avoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function Send()
    {
    self.opener.document.forms['form_utilisateur'].elements['fonctionAgent'].options[0].value=idfonction;	
    self.opener.document.forms['form_utilisateur'].elements['fonctionAgent'].options[0].innerHTML=labelfonction;
    windows.close();
    }
    avec un <body onload="send()">

    -Mais je voudrais savoir d'une part comment lui dire que c'est dans la page rh_adduser.php que je veux qu'il envoi les infos?
    -Ensuite comment lui indiquer les valeurs car je doute que ma solution soit la bonne, j'ai indiqué le nom des inputs ou j'ai récupéré les infos...

    Merci par avance


    EDIT :

    J'ai reussi a insérer du texte dans la liste déroulante de ma page mère mais je n'ai pas réussi a récupérer les bonnes valeurs qui sont dans mes inputs !

  11. #11
    Membre averti
    Inscrit en
    Février 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 45
    Par défaut
    C'est bon ! J'ai enfin réussi, merci beaucoup pour ton aide.
    Un petit récapitulatif de la solution :
    Dans la page insert_function.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function Send()
    			{
    				self.opener.document.forms['form_utilisateur'].elements['fonctionAgent'].options[0].value='<?echo $resfunction['id'];?>';
    				self.opener.document.forms['form_utilisateur'].elements['fonctionAgent'].options[0].innerHTML='<?echo $resfunction['label'];?>';
    			}

    Le seul problème qu'il me reste c'est que je voudrais ajouter cette fonction à la fin de la liste déroulante mais cela ne devrait pas être trop dur(enfin j'espere) j'ai déjà une idée la dessus.

    Encore merci et bonne continuation !

  12. #12
    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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    tu veux dire ajouter des options à la liste ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    self.opener.document.forms['form_utilisateur'].elements['fonctionAgent'].options.length=self.opener.document.forms['form_utilisateur'].elements['fonctionAgent'].options.length+1
    self.opener.document.forms['form_utilisateur'].elements['fonctionAgent'].options[self.opener.document.forms['form_utilisateur'].elements['fonctionAgent'].options.length=self.opener.document.forms['form_utilisateur'].elements['fonctionAgent'].options.length-1].innerHTML=tavariable;
    pas testé mais ça devarit marcher
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  13. #13
    Membre averti
    Inscrit en
    Février 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 45
    Par défaut
    Encore un petit soucis :

    j'essaye donc d'insérer la valeur en derniere position de la liste déroulante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function Send()
    	{
    		self.opener.document.forms['form_utilisateur'].elements['fonctionAgent'].options[<?=$id;?>].value='<?echo $resfunction['id'];?>';
    		self.opener.document.forms['form_utilisateur'].elements['fonctionAgent'].options[<?=$id;?>].innerHTML='<?echo $resfunction['label'];?>';
    	}
    $id correspond a l'id de la fonction que je viens d'insérer(ici 4), il n'y a pour l'instant que 3 fonctions dans ma liste déroulante allant des valeurs 1 à 3 ce qui est tout à fait normal.

    Mais j'obtiens le message d'erreur suivant : 'fonctionAgent.options.4' a la valeur Null ou n'est pas un objet.

    Des fois cela s'insère et des fois non !

    Si quelqu'un a une idée !?

    merci par avance


    EDIT :
    Je vais tester ce que tu m'as mis SpaceFrog, je n'avais pas vu avant de poster !

  14. #14
    Membre averti
    Inscrit en
    Février 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 45
    Par défaut
    Voila cette fois ci cela fonctionne impeccable, merci beaucoup Spacefrog tu m'as bien aidé.
    Je me suis inspiré de ce que tu as mis et voila ce qui fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function Send()
    	{
    		self.opener.document.forms['form_utilisateur'].elements['fonctionAgent'].options.length=self.opener.document.forms['form_utilisateur'].elements['fonctionAgent'].options.length+1;
    		self.opener.document.forms['form_utilisateur'].elements['fonctionAgent'].options[self.opener.document.forms['form_utilisateur'].elements['fonctionAgent'].options.length-1].value='<?echo $resfunction['id'];?>';
    		self.opener.document.forms['form_utilisateur'].elements['fonctionAgent'].options[self.opener.document.forms['form_utilisateur'].elements['fonctionAgent'].options.length-1].innerHTML='<?echo $resfunction['label'];?>';
    	}
    Merci encore à toi et bonne continuation

  15. #15
    Membre averti
    Inscrit en
    Février 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 45
    Par défaut
    Encore une petite question !
    Y a-t-il moyen de faire en sorte que la liste se mette a jour en ordre alphabétique?

    Merci par avance

  16. #16
    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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    oui il faudra lancer une focntion après que toutes les options aient été ajoutées , un exemple :

    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
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Tri alpha sur select</title>
    <script type='text/javascript'>
    function sortArray(){
    Liste= new Array();
    Obj= document.getElementById('monselect')
     
    for(i=0;i<Obj.options.length;i++){
    Liste[i]=new Array()
    Liste[i][0]=Obj.options[i].text
    Liste[i][1]=Obj.options[i].value
    }
    Liste=Liste.sort()
     
    for(i=0;i<Obj.options.length;i++){
    Obj.options[i].text=Liste[i][0]
    Obj.options[i].value=Liste[i][1]
    }
     
    }
     
     
    </script>
     
    </head>
     
    <body>
    <select id="monselect" onchange="alert(this.options[this.selectedIndex].value);">
    <option value="va">Charle</option>
    <option value="vc">Charlène</option>
    <option value="vg">Carlos</option>
    <option value="vd">Camille</option>
    <option value="vh">Aaron</option>
    </select>
    <br/>
    <input type="button" onclick="sortArray()" value="classer" />
    </body>
    </html>
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

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

Discussions similaires

  1. Liste déroulante javascript
    Par abbescr7 dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 29/05/2015, 17h28
  2. liste déroulante javascript
    Par jah_is_able dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 29/04/2009, 11h16
  3. 2 Liste déroulante javascript
    Par HWICE dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/07/2008, 23h45
  4. Liste déroulante javascript
    Par Lucky062 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 24/01/2008, 15h33
  5. [PHP-JS] Liste déroulante + Javascript + Php et Mysql : Besoin d'aide
    Par vampyrx dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 19/03/2006, 01h40

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