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 :

selection à partir d'un popup


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Points : 43
    Points
    43
    Par défaut selection à partir d'un popup
    Salut

    Je bloque sur un code Javascript qui permet de remplir un formulaire, alors si vous avec 2 ptites minutes devant vous ça serait magnifique ! Merci

    En fait j'ai un formulaire dans lequel j'ai un champ texte qui se remplit grace à l'ouverture d'un popup qui affiche une liste d'éléments, après avoir sélectionné un élément le champ de texte de ma page récupère la valeur de l'élément sélectionné en fait l'ID de cet élément, le petit soucis c'est que je voudrais effectivement récupéré l'ID dans un champ caché et également le nom de l'élément et ça je n'y arrive pas.

    Donc dans ma page formulaire j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    </script>
    <script language="javascript">
    function popup(fic)
    // on ouvre dans une fenêtre le fichier passé en paramètre.
    // cette ouverture peut être améliorée en passant d'autres
    // paramètres que la taille et la position de la fenêtre.
    { window.open(fic,'Choisir','width=400,height=250,top=50,left=50'); }
    </script>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="javascript:popup('popcaisse.php')">Caisse :</a><input name="numcaisse_pat" type="text" size="20" />


    et dans la page popup j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <script language="javascript">
    function choisir(caisse)
    // on affecte la valeur (.value) dans :
    // window.opener : la fenêtre appelante (celle qui a fait la demande)
    // .document : son contenu
    // .forms[0] : son premier formulaire
    // .w_choix : son champ appelé numcaisse_pat
    { window.opener.document.forms[0].numcaisse_pat.value = caisse.options[caisse.selectedIndex].value;
      // on se ferme
    self.close(); }
    </script>
    et ma liste :

    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
    <form action="" method="post" name="formcaisse">
    <select name="listecaisse" size="10" onChange="choisir(this)">
      <?php
    do {  
    ?>
      <option value="<?php echo $row_rscaisse['id_cai']?>"><?php echo $row_rscaisse['nom_cai']?></option>
      <?php
    } while ($row_rscaisse = mysql_fetch_assoc($rscaisse));
      $rows = mysql_num_rows($rscaisse);
      if($rows > 0) {
          mysql_data_seek($rscaisse, 0);
              $row_rscaisse = mysql_fetch_assoc($rscaisse);
      }
    ?>
    </select>
     
    </form>


    Quelqu'un a une ptite idée ?

    Merci

  2. #2
    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
    Bonjour,
    pour ne pas avoir à te soucier des formulaires (s'il y en a plusieurs, le [0] n'est pas forcément celui que l'on pense) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input name="numcaisse_pat" id="numcaisse_pat" type="text" size="20" />
    Tu pourras faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.opener.document.getElementById('numcaisse_pat').value = caisse.options[caisse.selectedIndex].value;
    Mais ton code semblait déjà bon (tout dépend du HTML de l'opener) ...

    EDIT : sous réserve qu'il n'y ait toujours qu'un seul id="numcaisse_pat" dans la page, bien sûr ...

    A+
    Pour tout savoir sur l'utilisation du forum

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

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Points : 43
    Points
    43
    Par défaut
    Merci pour la réponse

    Je pense que je me suis mal exprimé. Concrètement j'ai une table listant des organismes avec leur adresse, code postal, tel ... et je voudrais qu'en cliquant sur un lien intégré à mon formulaire ça m'ouvre dans une popup la liste des organismes. A partir de là si on clique sur l'un d'entre eux ça remplit les différents champs respectifs dans mon formulaire adresse, code postal, tel ...

    C'est dur à faire ??? Pour moi oui pour l'instant ...

    Merci

  4. #4
    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 Telecaster Voir le message
    Je pense que je me suis mal exprimé.


    A priori non, puisque c'est ce que j'avais compris et c'est dans ce sens que j'ai répondu

    Qu'est-ce qui ne te vas pas dans ma réponse ?

    A+
    Pour tout savoir sur l'utilisation du forum

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

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Points : 43
    Points
    43
    Par défaut
    Ta réponse me va très bien ... C'est juste qu'en Javascript je débute et que je ne vois pas comment mettre en place ta fonction.

    Dans le principe d'après ce que tu dis, donc je remplace :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <script language="javascript">
    function choisir(caisse)
    // on affecte la valeur (.value) dans :
    // window.opener : la fenêtre appelante (celle qui a fait la demande)
    // .document : son contenu
    // .forms[0] : son premier formulaire
    // .w_choix : son champ appelé numcaisse_pat
    { window.opener.document.forms[0].numcaisse_pat.value = caisse.options[caisse.selectedIndex].value;
      // on se ferme
    self.close(); }
    </script>
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <script language="javascript">
    function choisir(caisse)
    { self.opener.document.getElementById('numcaisse_pat').value = caisse.options[caisse.selectedIndex].value;
      // on se ferme
    self.close(); }
    </script>
    Ensuite ça me renvoit l'ID de l'organisme dans mon champ de formulaire correspondant.
    En fait j'obtiens le même résultat avec les deux scripts mais ce que je voudrais c'est que comme on a récupéré l'ID logiquement je devrais pouvoir remplir tous les autre champs (nom de l'organisme, adresse, code postal, tel ...)

    Je suis un peu perdu là désolé ! Tu peux m'apporter quelques précisions stp ?

    Merci

  6. #6
    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 Telecaster Voir le message
    En fait j'obtiens le même résultat avec les deux scripts mais ce que je voudrais c'est que comme on a récupéré l'ID logiquement je devrais pouvoir remplir tous les autre champs (nom de l'organisme, adresse, code postal, tel ...)
    OK : c'est moi qui avait pal compris ce passage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <script language="javascript">
    function choisir(objSource, id_opener)
    { self.opener.document.getElementById(id_opener).value = objSource.options[objSource.selectedIndex].value;
      // on se ferme
    self.close(); }
    </script>
    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <select name="listecaisse" size="10" onChange="choisir(this, 'numcaisse_pat')">
    si tous les choix de la pop sont fait via des <select>.
    Sinon, il faudra juste adapter l'instruction suivante pour d'autres types d'input :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objSource.options[objSource.selectedIndex].value
    (a priori : objSource.value)

    A chaque appel (onchange) il te suffit de passer ne 2° paramètre l'id (après t'être assuré qu'il soit défini) du champ à alimenter dans l'opener

    A+
    Pour tout savoir sur l'utilisation du forum

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

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Points : 43
    Points
    43
    Par défaut
    Ah la c'est pire que ce que je croyais ! Ca y'est je suis nul ...

    Je vois nul part dans ton code comment faire la relation avec les différents champs de mon formulaire.
    D'après ce que je lis, le popup que tu imagines possèdes plusieurs <select> alors qu'en fait je n'en ai qu'un avec la liste des organismes.
    Et chose importante je ne récupère pas l'ID de l'organisme à partir de l'opener.

    Un dernier essai ??? stp

    Je possède une page caisse.php dans laquelle j'ai un <form>
    Dans ce <form> j'ai plusieurs champs relatifs à l'identification de la caisse :

    Nom :
    Adresse :
    Numéro de la caisse :
    CP :
    Ville :
    Tel :

    Lorsque je clique sur "Nom", je voudrais que ça m'ouvre une pop qui liste les caisses :

    CPAM Tours
    CPAM Angers
    CPAM Nantes
    etc ...

    Lorsque je clique sur CPAM Angers par exemple, le pop se referme et je retrouve mon <form> avec cette fois-ci :

    Nom : <input name="nomcai_pat">CPAM Angers</imput>
    Adresse : <input name="adressecai_pat">32 rue Louis Gain</imput>
    Numéro de la caisse : <input name="numcai_pat">123456789</imput>
    CP : <input name="cpcai_pat">49100</imput>
    Ville : <input name="villecai_pat">ANGERS</imput>
    Tel : <input name="telcai_pat">0241414141</imput>

    Voilà ...

    Merc pour ta persévérence !

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Points : 43
    Points
    43
    Par défaut
    Salut Je reviens demander un peu d'aide concernant mes popups !

    Voilà depuis hier j'ai un peu avancé, j'essaye désormais de faire fonctionner le script suivant :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <script language="javascript">
    function choisir(caisse)
    tablo=caisse.options[caisse.selectIndex].value.split("$");
    { window.opener.document.forms[0].numcaisse_pat.value = tablo[0];
    window.opener.document.forms[0].nomcaisse_pat.value = tablo[1];
    self.close(); }
    </script>
    avec la liste suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <option value="<?php echo $row_rscaisse['id_cai']?>$<?php echo $row_rscaisse['nom_cai']?>"><?php echo $row_rscaisse['nom_cai']; ?></option>
    De cette façon je devrais pouvaoir récupérer l'ID dans un champ de mon formulaire et le nom dans un autre champ (et ainsi de suite car j'en ai d'autre à ajouter)

    Le petit soucis, la liste s'ouvre dans mon popup mais lorsque je sélectionne un des items aucune réaction, je ne reviens pas à mon formulaire et aucune donnée n'est transmise

    Une ptite idée svp ?

    Merci

  9. #9
    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 Telecaster Voir le message
    Le petit soucis, la liste s'ouvre dans mon popup mais lorsque je sélectionne un des items aucune réaction, je ne reviens pas à mon formulaire et aucune donnée n'est transmise
    Erreur de syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <script language="javascript">
    function choisir(caisse) { 
    tablo=caisse.options[caisse.selectIndex].value.split("$");
    window.opener.document.forms[0].numcaisse_pat.value = tablo[0];
    window.opener.document.forms[0].nomcaisse_pat.value = tablo[1];
    self.close(); }
    </script>


    A+
    Pour tout savoir sur l'utilisation du forum

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

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Points : 43
    Points
    43
    Par défaut
    Merci E.Bzz,

    Mais rien de plus, toujours aucune action effectuée Bizarre !

    Ca peut venir d'où d'après toi ?

    Merci

  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 Telecaster Voir le message
    Ca peut venir d'où d'après toi ?
    De l'appel de la fonction, donc de la balise <select> qu'il faudrait nous redonner ...

    A+
    Pour tout savoir sur l'utilisation du forum

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

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Points : 43
    Points
    43
    Par défaut
    La voilà :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <select name="listecaisse" size="10" onChange="choisir(this)">
      <?php
    do {  
    ?>
      <option value="<?php echo $row_rscaisse['id_cai']?>$<?php echo $row_rscaisse['nom_cai']?>"><?php echo $row_rscaisse['nom_cai']; ?></option>
      <?php
    } while ($row_rscaisse = mysql_fetch_assoc($rscaisse));
      $rows = mysql_num_rows($rscaisse);
      if($rows > 0) {
          mysql_data_seek($rscaisse, 0);
              $row_rscaisse = mysql_fetch_assoc($rscaisse);
      }
    ?>
    </select>
    Merci

  13. #13
    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
    Bon ben comme ça ne venait pas de l'appel, je suis retourné voir la fonction ...
    A+
    Pour tout savoir sur l'utilisation du forum

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

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Points : 43
    Points
    43
    Par défaut
    Alors là je dis bravo, bravo et encore bravo !!!

    Je sais pas ce que je deviendrais sans vous. Ca fonctionne nickel !!!

    Je suis trop content

    Et surtout merci de ne pas avoir laissé tomber

  15. #15
    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
    C'est avec plaisir !

    Bon dev'
    Pour tout savoir sur l'utilisation du forum

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

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/08/2005, 22h38
  2. [javascript] appel d'une fonction à partir d'une popup
    Par LE NEINDRE dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/08/2005, 15h14
  3. Select à partir d'un debut de numéro ...
    Par Le_Phasme dans le forum Langage SQL
    Réponses: 4
    Dernier message: 01/03/2005, 13h41
  4. appel d'une fonction à partir d'un popup
    Par villeneuvejsp dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/12/2004, 17h00
  5. SELECT à partir du ROWNUM
    Par MrSimon dans le forum SQL
    Réponses: 5
    Dernier message: 10/06/2003, 16h28

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