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 :

Récupérer les inputs clonés avec la fonction clone()


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2015
    Messages : 21
    Points : 16
    Points
    16
    Par défaut Récupérer les inputs clonés avec la fonction clone()
    Bonjour,
    j'ai utilisé la fonction clone() afin d'ajouter des ligne en fonction de mon besoin, mais j'arrive pas à récupérer les lignes (id) clonées (ajouter dans mon tableau) dans la la page choix.php:
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <form action="choix.php" method="post" >
      <table>
        <tr>
         <td><input type="text" name="diplome"  id="diplome" size="40"  /></td>
         <td><input type="text" name="specialite"  id="specialite" size="40"/></td>
         <td><input type="date" name="Date_dip" id="Date_dip" size="10"/></td>
         <td><input type="button" onclick="clone(this.parentNode.parentNode) "/></td>
        </tr>
      </table>
    </form>

    et voici ma fonction clone():
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function clone(line) {
    	newLine = line.cloneNode(true);
    	line.parentNode.appendChild(newLine);
    }
    avez vous une solution svp ??

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1- <... id="diplome" ...> : un id DOIT être UNIQUE.
    Donc, on ne peut pas le cloner.
    Si on clone, il faut utiliser une classe.

    2- <... name="diplome" ...> :
    Si on clone, on va alors en récupérer plusieurs. Il faut donc écrire : <... name="diplome[]" ...>.

    3- On a alors :
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <form id="myform" action="choix.php" method="post" >
      <table>
        <tr>
         <td><input type="text" name="diplome[]"  class="diplome" size="40"  /></td>
         <td><input type="text" name="specialite[]"  class="specialite" size="40"/></td>
         <td><input type="date" name="Date_dip[]" class="Date_dip" size="10"/></td>
         <td><input type="button" onclick="clone(this.parentNode.parentNode) "/></td>
        </tr>
      </table>
    </form>
    4- Pour récupérer les éléments, il faut passer par une astuce : mettre l'"écouteur" sur un élément DEJA présent dans le DOM (le <form>, par exemple).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    const myform = document.querySelector('#myform');
     
    myform.addEventListener('keyup', function(e){
      let elt = e.target;
      console.log( elt.name + ' : ' + elt.value)
    });
    Dernière modification par ProgElecT ; 27/02/2019 à 14h57.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2015
    Messages : 21
    Points : 16
    Points
    16
    Par défaut
    merci pour votre aide je vous ai bien compris sauf l'étape 4 j'ai pas trop compris ce que je dois faire? la récupération des valeurs clonées

  4. #4
    Invité
    Invité(e)
    Par défaut
    C'est surtout à toi de nous expliquer ce que tu entends par "récupérer".

  5. #5
    Membre à l'essai
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2015
    Messages : 21
    Points : 16
    Points
    16
    Par défaut
    dans la page choix.php je veux insérer les élément venant du <form> avec le POST dans ma base de données

  6. #6
    Invité
    Invité(e)
    Par défaut
    Dans ce cas, c'est en PHP.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $diplome_array = $_POST['diplome']; // array
    ...

    Fais un simple :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump( $_POST );
    Tu verras.

  7. #7
    Membre à l'essai
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2015
    Messages : 21
    Points : 16
    Points
    16
    Par défaut
    voici mon code:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <form id="myform" action="choix.php" method="post" >
      <table>
        <tr>
         <td><input type="text" name="diplome[]"  class="diplome" size="40"  /></td>
         <td><input type="text" name="specialite[]"  class="specialite" size="40"/></td>
         <td><input type="date" name="Date_dip[]" class="Date_dip" size="10"/></td>
         <td><input type="button" onclick="clone(this.parentNode.parentNode) "/></td>
        </tr>
      </table>
    </form>

    choix.php:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      $diplome=$_POST['diplome'];
      $specialite= $_POST['specialite'];
      $Date_dip= $_POST['Date_dip'];
      $req=$bdd->query('SET NAMES `utf8`');
      $req = $bdd->prepare("INSERT INTO emp_diplome(employe,diplome,specialite, Date_dip)VALUES ('$id','$diplome','$specialite','$Date_dip')");
      $req->execute(array());
    fichier js:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function clone(line) {
    	newLine = line.cloneNode(true);
    	line.parentNode.appendChild(newLine);
    }
    const myform = document.querySelector('#myform');
     
    myform.addEventListener('keyup', function(e){
      let elt = e.target;
      console.log(elt.name + ' : ' + elt.value)
    });
    et voila ce que ma donné
    Nom : Sans titre.png
Affichages : 143
Taille : 5,4 Ko

  8. #8
    Invité
    Invité(e)
    Par défaut
    Il faut utiliser foreach pour lire chaque ligne du tableau :

    Code php : 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
      // préparation de la requête
      $req = $bdd->prepare("INSERT INTO emp_diplome (employe,diplome,specialite, Date_dip) VALUES (:id,:diplome,:specialite,:Date_dip)");
      $req=$bdd->query('SET NAMES `utf8`');
     
    $id = $_POST['id']; // id employe
     
    foreach( $_POST['diplome'] as $ligne => $diplome )
    {
      $diplome = $_POST['diplome'][$ligne];
      $specialite = $_POST['specialite'][$ligne];
      $Date_dip = $_POST['Date_dip'][$ligne];
     
      if( !empty( $diplome ) || !empty( $specialite ) ) // condition à adapter
      {
        // exécution de la requête
        $req->execute(array(
          ':id' => $id,
          ':diplome' => $diplome,
          ':specialite' => $specialite,
          ':Date_dip' => $iDate_dip,
        ));
      }
    }

  9. #9
    Membre à l'essai
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2015
    Messages : 21
    Points : 16
    Points
    16
    Par défaut
    Bonjour,
    Grand merciiiiiiiiiiiiiiiiii pour votre aide ca marche
    bonne journée

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

Discussions similaires

  1. [POO] Est-il possible de récupérer les arguments muets d'une fonction ?
    Par RomainVALERI dans le forum Général JavaScript
    Réponses: 24
    Dernier message: 16/11/2009, 13h51
  2. Colorer les contours obtenus avec la fonction EDGE
    Par Jerome Briot dans le forum Contribuez
    Réponses: 5
    Dernier message: 19/06/2009, 18h18
  3. Récupérer les détails des paramètres des fonctions
    Par mercure07 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 25/02/2009, 21h55
  4. Réponses: 4
    Dernier message: 18/02/2009, 18h14
  5. [CKEditor] Récupérer les données écrites avec fckeditor
    Par thecrazyspy dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 06/06/2008, 14h49

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