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 :

Passer les donn�es d'un form � un autre � travers un boutton


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    D�cembre 2016
    Messages
    40
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 32
    Localisation : Cameroun

    Informations professionnelles :
    Activit� : Chercheur en informatique

    Informations forums :
    Inscription : D�cembre 2016
    Messages : 40
    Par d�faut Passer les donn�es d'un form � un autre � travers un boutton
    Bonsoir � vous, je suis bloqu� depuis avec mes deux (02) formulaires:
    j'ai un premier formulaire qui a un tableau et sur chaque ligne j'ai mis �v�nements double clic, et lorsque je double clic, il me fait appara�tre une autre fen�tre avec un autre formulaire qui contient les champs. A ce niveau tout marche, mais maintenant je veux mettre deux boutons dans mon formulaire UP (monter) et Down (descendre) de sorte � ce que lorsque je clic sur UP qu'il me charge les donn�es qui sont sur le premier formulaire dans les champs de m�me pour DOWN

    Merci d'avance !!!

  2. #2
    Membre extr�mement actif Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 532
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 532
    Par d�faut
    Citation Envoy� par romyney Voir le message
    .../ il me fait appara�tre une autre fen�tre avec un autre formulaire qui contient les champs /..
    avec quelle m�thode ?
    c'est une vraie fen�tre appel�e par un window.open ou c'est une div qui "s'ouvre" ?

  3. #3
    Membre averti
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    D�cembre 2016
    Messages
    40
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 32
    Localisation : Cameroun

    Informations professionnelles :
    Activit� : Chercheur en informatique

    Informations forums :
    Inscription : D�cembre 2016
    Messages : 40
    Par d�faut
    bonjour merci de me repondre c'est avec la methode open() c'est � dire window.open()

  4. #4
    Mod�rateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par d�faut
    Bonjour,
    dans le cas d'un window.open() le mot cl� est window.opener dans la fen�tre � enfant �.

    window.opener sur MDN

    � Tu devrais �galement trouver ton bonheur dans cette discussion : Transf�rer des informations : fen�tre parent <-> fen�tre enfant

  5. #5
    Membre averti
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    D�cembre 2016
    Messages
    40
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 32
    Localisation : Cameroun

    Informations professionnelles :
    Activit� : Chercheur en informatique

    Informations forums :
    Inscription : D�cembre 2016
    Messages : 40
    Par d�faut
    ok c'est compris, mais le probl�me ce n'est pas d'ouvrir la fen�tre car �a je le fais d�j� et �a marche. le probl�me c'est de prendre les donn�es d'une ligne du tableau qui se trouve sur la fen�tre parent pour mettre sur les champs text de la fen�tre enfant

  6. #6
    Mod�rateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par d�faut
    Je n'ai pas repris/relus le lien que je t'ai propos� mais je pense que tout est dedans.

    Je te mets un exemple simple de transfert de donn�es inter-fen�tre avec des appels aux fonctions de la page-parent depuis la page-enfant, l'inverse est �galement possible, cela se fait simplement via une syntaxe du style window.opener.nom_de_la_fonction().

    Le code des fichiers exemple :

    page-parent.html
    Code html : 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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    <!DOCTYPE HTML>
    <html lang="fr">
    <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>[Parent] Communication entre page</title>
    <meta name="Author" content="NoSmoking">
    <meta name="DVP-discussion" content="1877992">
    <style>
    html, body {
      margin: 0;
      padding: 1em;
      font: 1em/1.5 Verdana,sans-serif;
    }
    main, #main {
      display: block;
      position: relative;
      margin: auto;
      max-width: 60em;
    }
    h1, h2,h3 {
      color: #069;
    }
    input, button {
      width: 12em;
      padding: .5em;
      max-width: 12em;
      font: inherit;
    }
    button {
      cursor: pointer;
    }
    span {
      display: inline-block;
      min-width: 10em;
    }
    [id^="champ"] {
      width: 12em;
      padding: .5em;
      border: 1px solid #CCC;
    }
    [id^="champ"].fond-vert {
      border-color: #080;
      background-color: #DEC;
    }
    .label {
      text-align: right;
    }
    .label:after {
      content: ":";
      margin: 0 .5em; 
    }
    </style>
    </head>
    <body>
    <main>
      <h1>Page parent</h1>
      <p>
        <span class="label">Nom</span><span id="champ-nom">Smith</span>
      </p>
      <p>
        <span class="label">Prénom</span><span id="champ-prenom">John</span>
      </p>
      <p>
        <button id="cde-openPopup">Open Enfant</button>
        <button id="cde-closePopup">Close Enfant</button>
      </p>
    </main>
    <script>
    "use strict";
    var winEnfant = null;
     
    function closePopup() {
      if (winEnfant) {
        winEnfant.close();
        winEnfant = null;
      }
    }
     
    function openPopup() {
      winEnfant = window.open("page-enfant.html", "my-win");
      winEnfant.focus();
    }
     
    function getTextContent(id) {
      var text = null;
      var elem = document.getElementById(id);
      if (elem) {
        text = elem.textContent;
        elem.className = "";
      }
      return text;
    }
     
    function setTextContent(id, text) {
      var elem = document.getElementById(id);
      if (elem) {
        elem.textContent = text;
      }
      return elem; // pour chainage éventuel
    }
     
    // initialisation des boutons
    var oBtns = document.querySelectorAll("button");
    [].forEach.call(oBtns, function (elem) {
      var cde = elem.id.replace("cde-", "");
      elem.onclick = window[cde] || null;
    });
    </script>
    </body>
    </html>

    page-enfant.html
    Code html : 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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    <!DOCTYPE HTML>
    <html lang="fr">
    <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>[Enfant] Communication entre page</title>
    <meta name="Author" content="NoSmoking">
    <meta name="DVP-discussion" content="1877992">
    <style>
    html, body {
      margin: 0;
      padding: 1em;
      font: 1em/1.5 Verdana,sans-serif;
    }
    main, #main {
      display: block;
      position: relative;
      margin: auto;
      max-width: 60em;
    }
    h1, h2,h3 {
      color: #069;
    }
    input, button {
      width: 12em;
      padding: .5em;
      max-width: 12em;
      font: inherit;
    }
    button {
      cursor: pointer;
    }
    label {
      display: inline-block;
      text-align: right;
      min-width: 10em;
    }
    label:after {
      content: ":";
      margin: 0 .5em; 
    }
    code {
      font-family: "courier new";
      font-size: 1em;
      color: #069;
    }
    </style>
    </head>
    <body>
    <main>
      <h1>Page enfant</h1>
      <p>
        <label>Nom</label><input id="champ-nom" value="">
      </p>
      <p>  
        <label>Prénom</label><input id="champ-prenom" value="">  
      </p>
      <p>
        <button id="cde-upDateChampsEnfant">Get from parent</button>
        <button id="cde-upDateChampsParent">Set to parent</button>
        <button id="cde-closePage">Ferme la page</button>    
      </p>
      <p>
        <b>Nota</b> : la fonction <code>upDateChampsEnfant()</code> peut être appelée directement sur le <code>load</code> de la page enfant.
      </p>
     
    </main>
    <script>
    "use strict";
    var winParent = window.opener;
     
    function closePage() {
      // si fenêtre parent existe
      if (winParent) {
        // appel à la méthode de la fenêtre parent    
        winParent.closePopup();
      }
    }
     
    function upDateChampsEnfant() {
      // si fenêtre parent existe
      if (winParent) {
        var text;
        var oElems = document.querySelectorAll("[id^=champ-]");
        // mise à jour des champs de la page enfant
        [].forEach.call(oElems, function (elem) {
          // appel à la méthode de la fenêtre parent    
          text = winParent.getTextContent(elem.id);
          // mise à jour champ page enfant
          if (text) {
            elem.value = text;
          }
        });
      }
    }
     
    function upDateChampsParent() {
      // si fenêtre parent existe
      if (winParent) {
        var text;
        var elemParent;
        var oElems = document.querySelectorAll("[id^=champ-]");
        // mise à jour des champs de la page parent
        [].forEach.call(oElems, function (elem) {
          text = elem.value;
          // appel à la méthode de la fenêtre parent
          elemParent = winParent.setTextContent(elem.id, text);
          // modification CSS élément de la page parent
          if (elemParent) {
            elemParent.className = "fond-vert";
          }
        });
      }
    }
     
    // initialisation des boutons
    var oBtns = document.querySelectorAll("button");
    [].forEach.call(oBtns, function (elem) {
      var cde = elem.id.replace("cde-", "");
      elem.onclick = window[cde] || null;
    });
    </script>
    </body>
    </html>

    Il y a quelque astuces comme utiliser les m�mes ID, pour les champs, sur les deux pages ce qui simplifie la gestion.
    Rappel qu'en m�me : une ID doit �tre UNIQUE dans un document.

    D'autres fa�ons de mettre � jour pourraient �tre utilis�es comme celle de passer les donn�es en param�tre de l'url de la page enfant.

    Quoiqu'il en soit, regarde le code, teste le, analyse le et ajuste le � ton besoin.

    Il existe une autre solution qui est moins � prise de t�te � c'est de mettre tout dans la m�me page, dans une <div> masqu�e, et d'afficher non pas une fen�tre � popup � mais une fen�tre dite � popin �, la <div> masqu�e en fait.

Discussions similaires

  1. Passer des donn�es d'une Form � l'autre
    Par Zacheus dans le forum Delphi
    R�ponses: 5
    Dernier message: 20/11/2015, 16h00
  2. passer les donn�es d'une figure � une autre
    Par hmissa islem dans le forum Interfaces Graphiques
    R�ponses: 1
    Dernier message: 11/05/2015, 11h11
  3. Recuperer les donn�es d'une forme � une autre
    Par beautiful soul dans le forum C#
    R�ponses: 2
    Dernier message: 06/06/2011, 16h12
  4. Passer les donn�es d'une base � une autre
    Par 4rocky4 dans le forum Access
    R�ponses: 3
    Dernier message: 18/03/2008, 19h30
  5. Passer les donn�es d'un "select" � l'autre
    Par Fiosi dans le forum G�n�ral JavaScript
    R�ponses: 8
    Dernier message: 25/09/2007, 08h48

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