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 :

Modifier valeur lors du clonage ligne tableau


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 48
    Par défaut Modifier valeur lors du clonage ligne tableau
    Bonjour a tous,

    je recherche comment modifier la valeur "idtable[]" lors du clonage d'une ligne de tableau.
    De manière à pouvoir distinguer une nouvelle ligne d'une ligne déja existante pour ensuite faire un INSERT ou UPDATE dans un BDD suivant le cas.
    sachant que je ne peux pas me fier à la dernière ligne insérer car je peux en supprimer ou en ajouter a volonté.

    Ma dernière tentative est avec la fonction SPLICE, mais ça fonctionne pas.

    Merci de votre aide, car la je tourne en rond dans mon bocal...

    mon code js :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function clone(line){
        newLine = line.cloneNode(true);
        newLine.splice(0,1 ,"");
        line.parentNode.appendChild(newLine);
    }

    code html concerné :
    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
        <tr>
          <td visibility: hidden ><input name="idtable[]" type="text" placeholder="" Value= "<?php echo $row['ID']?>"></td>
          <td><input class="in0" name="contrat[]" type="text" placeholder="N° de contrat" Value= "<?php echo $row['CONTRAT']?>" required></td>
          <td><input class="in0" name="reference[]" type="text" placeholder="référence fabricant" Value= "<?php echo $row['REFERENCE']?>" required></td>
          <td><select name="status[]" required>
    				    <option <?php if($row['STATUS'] == ""){echo 'selected="selected"';} ?> value="" >Veuillez Choisir</option>
                <option <?php if($row['STATUS'] == "En cours"){echo 'selected="selected"';} ?> value="En cours">En cours</option>
                <option <?php if($row['STATUS'] == "Clos"){echo 'selected="selected"';} ?> value="Clos">Clos</option>
              </select></td>
          <td><input class="in0" name="date_debut[]" type="date" placeholder="date de debut contrat" Value= "<?php echo $row['DATE DE DEBUT']?>" required></td>
          <td><input class="in0" name="date_fin[]" type="date" placeholder="date de fin contrat" Value= "<?php echo $row['DATE DE FIN']?>" required></td>
          <td><select name="renouvele[]" required>
    				    <option <?php if($row['RENOUVELE'] == ""){echo 'selected="selected"';} ?> value="" >Veuillez Choisir</option>
                <option <?php if($row['RENOUVELE'] == "Oui"){echo 'selected="selected"';} ?>value="OUI">Oui</option>
                <option <?php if($row['RENOUVELE'] == "Non"){echo 'selected="selected"';} ?>value="NON">Non</option>
              </select></td>
          <td><select name="unite_vente[]" required>
    				    <option <?php if($row['UNITES DE VENTE'] == ""){echo 'selected="selected"';} ?>value="" >Veuillez Choisir</option>
                <option <?php if($row['UNITES DE VENTE'] == "Points"){echo 'selected="selected"';} ?> value="Points">Points</option>
                <option <?php if($row['UNITES DE VENTE'] == "Euros"){echo 'selected="selected"';} ?>value="Euros">Euros</option>
              </select></td>
          <td><input class="in0" name="contact[]" type="text" placeholder="contact client" Value= "<?php echo $row['CONTACT']?>"></td>
          <td><input class="in0" name="mail[]" type="text" placeholder="mail du client" Value= "<?php echo $row['MAIL CONTACT']?>"></td>
          <td><input class="in0" name="telephone[]" type="text" placeholder="télephone du client" Value= "<?php echo $row['TELEPHONE']?>"></td>
          <td><input class="in0" name="solde[]" type="text" placeholder="Solde de Points" Value= "<?php echo $row['SOLDE']?>"></td>
          <td visibility: hidden ><input name="compte_soon_D[]" type="text" placeholder="" Value= "<?php echo $row['COMPTE SOON']?>"></td>
          <td>
            <img src="../images/buttonplus.png" style="width: 32px; height:32px;" class="btnplus" name="select" onclick="clone(this.parentNode.parentNode)"/>
            <img src="../images/buttonremove.png" style="width: 32px; height:32px;" class="btnplus" name="select" onclick="remove(this.parentNode.parentNode)"/>
          </td>
          </tr>

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 670
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 670
    Par défaut
    pour modifier un attribut en javascript, vous pouvez utiliser cela :
    https://developer.mozilla.org/fr/doc...t/setAttribute

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 48
    Par défaut
    Bonjour Mathieu,
    pour cette réponse.
    Je comprend bien la fonction setAttribute(). Enfin je pense car je suis une bille en JS...
    par contre je n'arrive pas l'exploiter ou la placer au bon endroit.

    mon code JS :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function clone(line){
      newLine = line.cloneNode(true);
     
      newLine.setAttribute("idtable","news valeur");
      //newLine.setAttribute("idtable[]","news valeur");
      //newLine.setAttribute("idtable"[newLine.rowIndex],"news valeur");
     
      line.parentNode.appendChild(newLine); 
    }

    merci de votre aide.

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 670
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 670
    Par défaut
    qu'est ce que vous voyez comme résultat dans la console de développement avec ce code ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 48
    Par défaut
    ça me crée un nouveau bien une ligne complète identique , mais il crée dans le <Tr avec un attribut idtable="news valeur".

    Moi ce que j'aurais besoin c'est une fonction qu'il remplace value="978" de l'input name="idtable[]" par value="news valeur" a la création du clonage.

    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
    <tr idtable="news valeur">
                          <td visibility:="" hidden=""><input name="idtable[]" type="text" placeholder="" value="978"></td>
                          <td><input class="in0" name="contrat[]" type="text" placeholder="N° de contrat" value="A21NS088935" required=""></td>
                          <td><input class="in0" name="reference[]" type="text" placeholder="référence fabricant" value="FSACSAOTEWRT001" required=""></td>
                          <td><select name="status[]" required="">
                              <option value="">Veuillez Choisir</option>
                              <option value="En cours">En cours</option>
                              <option selected="selected" value="Clos">Clos</option>
                            </select></td>
                          <td><input class="in0" name="date_debut[]" type="date" placeholder="date de debut contrat" value="2022-01-01" required=""></td>
                          <td><input class="in0" name="date_fin[]" type="date" placeholder="date de fin contrat" value="2022-07-01" required=""></td>
                          <td><select name="renouvele[]" required="">
                              <option value="">Veuillez Choisir</option>
                              <option value="OUI">Oui</option>
                              <option selected="selected" value="NON">Non</option>
                            </select></td>
                          <td><select name="unite_vente[]" required="">
                              <option value="">Veuillez Choisir</option>
                              <option value="Points">Points</option>
                              <option selected="selected" value="Euros">Euros</option>
                            </select></td>
                          <td><input class="in0" name="contact[]" type="text" placeholder="contact client" value=""></td>
                          <td><input class="in0" name="mail[]" type="text" placeholder="mail du client" value=""></td>
                          <td><input class="in0" name="telephone[]" type="text" placeholder="télephone du client" value=""></td>
                          <td><input class="in0" name="solde[]" type="text" placeholder="Solde de Points" value=""></td>
                          <td visibility:="" hidden=""><input name="compte_soon_D[]" type="text" placeholder="" value=""></td>
                          <td>
                            <img src="../images/buttonplus.png" style="width: 32px; height:32px;" class="btnplus" name="select" onclick="clone(this.parentNode.parentNode)">979                        <img src="../images/buttonremove.png" style="width: 32px; height:32px;" class="btnplus" name="select" onclick="remove(this.parentNode.parentNode)">
                          </td>
                        </tr>

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    Bonjour,
    ça me crée un nouveau bien une ligne complète identique , mais il crée dans le <Tr avec un attribut idtable="news valeur".
    c'est conforme a ce que tu demandes en écrivant :
    newLine.setAttribute("idtable","news valeur");
    Si tu veux modifier l'attribut value de l'élément <input name="idtable[]">alors c'est lui qu'il faut que tu cibles
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    const elemInput = newLine.querySelector("[name='idtable[]']");
    elemInput.setAttribute("value", "news valeur");

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/12/2009, 20h43
  2. [Tableaux] Modifier valeur d'un Object Tableau
    Par miltonis dans le forum Langage
    Réponses: 6
    Dernier message: 24/04/2008, 10h30
  3. [Tableaux] Modifier valeur champ tableau
    Par masseur dans le forum Langage
    Réponses: 2
    Dernier message: 05/03/2008, 16h19
  4. modifier les valeurs lors de l'affichage!
    Par NedaRyme dans le forum Débuter
    Réponses: 4
    Dernier message: 04/03/2008, 16h06
  5. Réponses: 3
    Dernier message: 04/01/2006, 20h53

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