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 :

champ d'un formulaire alimenté par une liste de choix d'un pop-up


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 5
    Par défaut champ d'un formulaire alimenté par une liste de choix d'un pop-up
    Bonjour,

    voici mon probleme:

    J'ai un formulaire avec un champ TEXT, en face de mon champ text j'ai un lien qui ouvre un pop-up,dans ce pop-up j'ai une liste déroulante alimentée par une base de données et lorsque je clique sur une valeur de la liste déroulante, celle-ci est reportée dans le champ text de la fenêtre "mère".POur cela c'est Ok par contre maintenant ce que je voudrais, au lieu d'avoir une liste déroulante dans mon pop-up je voudrais une liste (tableau), que chaque ligne soit cliquable et que lorsque je clique sur une ligne celle ci soit reporté dans le champ de la fenêtre mère.

    J'ai bien mon tableau constitué a partir d'une requete sql, le code de chaque ligne est cliquable cependant la valeur sur laquelle je clic n'est pas reportée dans le formulaire de la page mère.

    voici mon code complet en 3 fichiers:

    Le premier fichier nommé index.php (formulaire)

    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    <head>
     
    <title>TEST</title>
     
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <meta http-equiv="Content-Language" content="fr" />
        <script type="text/javascript" src="open_popup_test.js"></script>
    </head>
    <body>
    <?php
    mysql_connect(localhost, root, root) or die('<h1>Connexion au serveur impossible !</h1>');
    mysql_select_db(test2) or die('<h1>Connexion impossible à la base</h1>');
    ?>
     
    <form name='test'>
    	TEST:
       	<input type="text" name="test_cod">
    		<a href="javascript:open_popup_test()">Ouverture popup</a><br><br>
     
    <?php
    mysql_close();
    ?>
      </body>
     
    </html>
    Puis le fichier contenant la fonct° javascript nommée open_popup_test.js:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function open_popup_test()
    {
    window.open("popup_test.php", "TEST", "toolbar=yes, status=yes, scrollbars=yes, resizable=no, width=300, height=300");
    }
    Puis la pop-up nommée popup_test.php:

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
     
    	<head>
     
    		<title>Popup</title>
    		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    		<script language="javascript">
    			function Reporter(element) 
    			{
    			var test_cod=element.[element.selectedIndex].value;
    			window.opener.document.forms["test"].elements["test_cod"].value=test_cod;
    			window.close();
    			}
    		</script>
     
    	</head>
     
    <body>
     
    <?php
    mysql_connect(localhost, root, root) or die('<h1>Connexion au serveur impossible !</h1>');
    mysql_select_db(test2) or die('<h1>Connexion impossible à la base</h1>');
    ?>
     
    <form name='report'>
    <?php
    $SQL = "SELECT COD,LIB FROM TEST";
    $res = mysql_query($SQL);
    while($row=mysql_fetch_row($res)) 
    {
    $cod = $row[0];
    $lib = $row[1];
    ?>
    <table>
    	<tr>
    	<td><a href="javascript:Reporter(this)"><?php echo $cod ?></a></td>
    	<td><?php echo $lib ?></td>
    	<br />
    	</tr>
    </table> 
     
    <?php
    }
    ?>
    </form>
     
    <?php
    mysql_close();
    ?>
    </body>
    </html>
    Et si vous voulez voici le script de schéma Mysql:

    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
    SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
     
    CREATE TABLE IF NOT EXISTS `test` (
      `ID` int(11) NOT NULL AUTO_INCREMENT,
      `COD` varchar(5) COLLATE utf8_unicode_ci NOT NULL,
      `LIB` varchar(40) COLLATE utf8_unicode_ci DEFAULT NULL,
      PRIMARY KEY (`ID`),
      UNIQUE KEY `ID` (`ID`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=5 ;
     
    -- Contenu de la table `test`
     
    INSERT INTO `test` (`ID`, `COD`, `LIB`) VALUES
    (1, '1111', 'TEST1'),
    (2, '2222', 'TEST2'),
    (3, '3333', 'TEST3'),
    (4, '4444', 'TEST4');
    Avec ce code, ci dessus, lorsque je clique sur une valeur de la pop-up il ne se passe rien, alors que si je met le code suivant dans le fichier popup_test.php c'est OK:

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
     
    	<head>
     
    		<title>Popup</title>
    		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    		<script language="javascript">
    			function Reporter(element) 
    			{
    			var test_cod=element.options[element.options.selectedIndex].value;
    			window.opener.document.forms["test"].elements["test_cod"].value=test_cod;
    			window.close();
    			}
    		</script>
     
    	</head>
     
    <body>
     
    <?php
    mysql_connect(localhost, root, root) or die('<h1>Connexion au serveur impossible !</h1>');
    mysql_select_db(test2) or die('<h1>Connexion impossible à la base</h1>');
    ?>
     
    <form name='report'>
       <select onChange="Reporter(this)">
    <?php
    if($cod==""){
    echo('<option value="'.'">'.'Choisir'.'</option>');
    }
    else
    {
    echo('<option value="'.'">'.'</option>');}
    $SQL = "SELECT COD,LIB FROM TEST";
    $res = mysql_query($SQL);
    while($val=mysql_fetch_array($res)) {
    echo "<option>".$val["COD"]. ' - '.$val["LIB"]."</option>\n";
    }
    ?>
       </select><br><br>
     
    </form>
    <?php
    mysql_close();
    ?>
     
    </body>
     
    </html>
    Je pense que cela vient de ma fonction javascript du fichier popup_test.php
    mais sans savoir où.....

    Merci d'avance pour votre aide et bonne année.

    Cdt

    Jérémy

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 313
    Par défaut
    popup_test, ta fonction Reporter est incompréhensible. Regarde ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    element.[element.selectedIndex].value
    - element.[ : L'interpréteur javascript doit planter ici
    - selectedIndex :J'avais cru lire que tu voulais non plus un select, mais un tableau. Alors pourquoi cette propriété est-elle encore là ?

    De la manière dont tu transmet l'info à ta fonction, tu vas devoir scanner les children de ton element pour chercher tes informations (pas terrible).

    Tu devrais simplifier ça, et tacher de transmettre un max de paramètre via le href vers ta fonction.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 5
    Par défaut
    Merci pour ce debut de reponse, je pensais aussi que le pb venait de là mais ayant très peu de connaissance en JS pour ne pas dire pas du tout, je ne vois pas trop comment résoudre le pb.

    J'ai essayé de modifier la fonction comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function Reporter(element) 
    			{
    			var test_cod=document.getElementsByTagName("table")[0];
    			window.opener.document.forms["test"].elements["test_cod"].value=test_cod;
    			window.close();
    			}
    mais ce qui est envoyé dans le champ du formulaire n'est pas la valeur sur laquel j'ai cliqué mais j'obtiens cela : [object HTMLTableElement]

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 5
    Par défaut
    Voila un peu ce que je souhaite obtenir....(voir PJ)
    Images attachées Images attachées  

Discussions similaires

  1. [AC-2007] Utilisation d'un sous-formulaire alimenté par une requête
    Par BR4562 dans le forum Access
    Réponses: 13
    Dernier message: 13/03/2014, 19h20
  2. [XL-2007] Contenu d'une cellule alimenté par une liste de validation
    Par deamonRav dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/05/2011, 11h19
  3. Masquer une colonne d'un dgv alimenté par une liste
    Par dabaton dans le forum ASP.NET
    Réponses: 2
    Dernier message: 26/04/2010, 14h44
  4. Formulaire alimenté par une base de données
    Par claire13 dans le forum Langage
    Réponses: 5
    Dernier message: 25/10/2007, 10h31
  5. [VBA-E]Mise à jour de cellule alimentée par une liste
    Par moritan dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/01/2007, 06h11

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