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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    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

    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
    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+

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    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

    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
    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+

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    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

    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
    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+

+ 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