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 :

Dupliquer des lignes


Sujet :

JavaScript

  1. #1
    Membre régulier Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Points : 92
    Points
    92
    Par défaut Dupliquer des lignes
    Bonjour,

    J'ai fait un tableau comme ceci :
    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
    <div class="gauche largeur640px gras" id="tabs_0"><div class="gauche largeur640px" style="padding: 10px 0;">
        <div class="gauche gras" style="width: 150px;">
            Lundi                              
        </div>
     
        <div class="gauche centrer" style="width: 340px;" id="tabs_[0][1]">
            <input type="hidden" name="tabs_[0][1][jour]" value="1">
            De <input type="time" name="tabs_[0][1][from_h]" id="tabs_[0][1][from_d]" step="1" min="00:00" max="23:59" value="00:00" class="margeHautMoins4px"> à
            <input type="time" name="tabs_[0][1][from_f]" id="tabs_[0][1][from_f]" step="1" min="00:00" max="23:59" value="00:00" class="margeHautMoins4px">
        </div>
     
        <div class="gauche" style="margin-left: 50px;">                                  
            <div onclick="addRow(0,1);" class="gauche contentBulle marge0_5"><div class="bulle"><div class="contentBulleFleche"></div><div class="contentBulleDescription" style="font-weight: normal;font-size: 13px;">Ajouter une tranche horaire.</div></div><img src="https://cdn2.iconfinder.com/data/icons/freecns-cumulus/16/519691-199_CircledPlus-16.png" width="16&quot;" height="16" alt=""></div>
            <div onclick="delRow(0,1);" class="gauche contentBulle marge0_5"><div class="bulle"><div class="contentBulleFleche"></div><div class="contentBulleDescription" style="font-weight: normal;font-size: 13px;">Supprimer une tranche horaire.</div></div><img src="https://cdn2.iconfinder.com/data/icons/freecns-cumulus/16/519643-144_Forbidden-16.png" width="16&quot;" height="16" alt=""></div>
        </div>
    </div></div>

    Mon but étant de créer les fonctions addRow, delRow.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function addRow(num_tab, num_jour) {
     alert("Add : " + num_tab + " - " + num_jour);
    }
    En cliquant sur l'icone +, addRow doit rajouter le choix des horaires.

    J'ai voulu vous mettre ici : http://jsfiddle.net/6kTBv/4/ mais la fonction se lance pas alors que sur mon pc j'ai au moins l'alerte.

    Merci de votre aide

  2. #2
    Membre expert
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 387
    Points : 3 535
    Points
    3 535
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Il faut positionner ton js dans le head avec "No wrap - in head" et ça sera bon sur ton fiddle.

  3. #3
    Membre régulier Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Points : 92
    Points
    92
    Par défaut
    Bien vu, pour montrer ca va etre plus simple

    J'ai modifié le JS, mais je comprend pas, c'est pas sensé ajouté une ligne ?!

    http://jsfiddle.net/6kTBv/5/

  4. #4
    Membre expert
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 387
    Points : 3 535
    Points
    3 535
    Billets dans le blog
    1
    Par défaut
    Si tu utilise jQuery dans ton code, ne pas oublier de le mettre sur jsfiddle (la liste en haut à gauche)

    Sinon, je ne sais pas encore pourquoi, les ID avec des "[]" ne plaise pas à jQuery, sans crochet ça ce passe bien.

    http://jsfiddle.net/6kTBv/7/

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Ce serait sympa de faire le minimum syndical de débogage avant de poster...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insertAfter( "#tabs[0][1]" )

  6. #6
    Membre régulier Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Points : 92
    Points
    92
    Par défaut
    En suivant tes conseils, voici l'évolution : http://jsfiddle.net/6kTBv/8/
    Par contre, il faut que j'arrive à limiter à 3 lignes.

  7. #7
    Membre expert
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 387
    Points : 3 535
    Points
    3 535
    Billets dans le blog
    1
    Par défaut
    Personnellement j'aurai fait quelques chose comme ça :

    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function addRow(num_tab, num_jour) {
        var nb_tranche = $(".tranche_hor").size();
        if (nb_tranche < 3){
            var new_line = $("#tranche").clone().attr('id',   this.id + '_' + nb_tranche);
            $(new_line).insertAfter( "#tabs" + num_tab + "" + num_jour + "" );
        }
    }

    http://jsfiddle.net/6kTBv/11/

    ( tu as toujours des crochets dans tes id, il faudrait éviter )

  8. #8
    Membre régulier Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Points : 92
    Points
    92
    Par défaut
    EN faisant comme tu as mis, on a la possibilité de supprimer aussi ?

  9. #9
    Membre expert
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 387
    Points : 3 535
    Points
    3 535
    Billets dans le blog
    1
    Par défaut
    Pourquoi on ne pourrait pas ?

    Il faut faire le code quoi ^^

  10. #10
    Membre régulier Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Points : 92
    Points
    92
    Par défaut


    Disons que j'y suis depuis ce matin 8 heures, et ca commence à me

  11. #11
    Membre expert
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 387
    Points : 3 535
    Points
    3 535
    Billets dans le blog
    1
    Par défaut
    Bon, je vais t'aider alors

    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    function addRow(num_tab, num_jour) {
        var nb_tranche = $(".tranche_hor").size();
        if (nb_tranche < 3){
            var new_line = $("#tranche_0").clone().attr('id',   'tranche_' + nb_tranche);
            $(new_line).insertAfter( "#tabs" + num_tab + "" + num_jour + "" );
        }
    }
     
     
    function delRow(num_tab, num_jour) {
        var nb_tranche = $(".tranche_hor").size() - 1;
        if (nb_tranche > 0)
            $("#tranche_" + nb_tranche).remove();
    }

    http://jsfiddle.net/6kTBv/12/

  12. #12
    Membre régulier Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Points : 92
    Points
    92
    Par défaut
    Bizarre, quand on fait ajouter une tranche horaire, ca se met pas en dernier, et pareil quand on veut supprimer, ca ne commence pas par la fin.

  13. #13
    Membre expert
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 387
    Points : 3 535
    Points
    3 535
    Billets dans le blog
    1
    Par défaut
    Oui, c'est le insertAfter, remplace le par insertBefore

  14. #14
    Membre régulier Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Points : 92
    Points
    92
    Par défaut
    Rapide et efficace.

    Mais, un problème se pose. J'ajoute les autres jours de la semaine, et bien du coup, je peux plus ajouter de plage horaire car on dirait qu'il détecte plus de 3 au final (7, pour les 7 jours de la semaine)

  15. #15
    Membre régulier Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Points : 92
    Points
    92
    Par défaut
    Maintenant que j'ai mis tous les jours de la semaine ca bug : http://www.justacote.com/horaires.php

  16. #16
    Membre expert
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 387
    Points : 3 535
    Points
    3 535
    Billets dans le blog
    1
    Par défaut
    J'ai corrigé quelques erreurs, ça devrait être mieux.

    Code js : 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
     
    function addRow(num_tab, num_jour, num_ligne) {
        var nb_tranche = $(".tranche_hor_" + num_jour).size() -1;
        if (nb_tranche < 2){
    			var num_ligne_suivante = nb_tranche + 1;
            var new_line = $("#tranche_" + num_jour + "_" + num_ligne).clone().attr('id',   'tranche_' + num_jour + "_" + num_ligne_suivante);
            $(new_line).insertBefore( "#tabs" + num_tab + "" + num_jour + "" );
        }
    }
     
     
    function delRow(num_tab, num_jour, num_ligne) {
        var nb_tranche = $(".tranche_hor_" + num_jour).size() - 1;
        if (nb_tranche > 0)
            $("#tranche_" + num_jour + "_" + nb_tranche).remove();
    }

    Si tu n'as pas besoin de num_tab et num_ligne dans tes fonctions tu pourra les enlever aussi, ça sera plus propre.

  17. #17
    Membre régulier Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Points : 92
    Points
    92
    Par défaut
    La suppression de ligne ne marche pas bien
    Sacré bordel ce trucs

  18. #18
    Membre expert
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 387
    Points : 3 535
    Points
    3 535
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par PIEPLU Voir le message
    La suppression de ligne ne marche pas bien
    Comment ça, j'ai regardé sur ta page, ça à l'air de bien marcher.

  19. #19
    Membre régulier Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Points : 92
    Points
    92
    Par défaut
    ah oui, faut que j'arrête de fumer lol
    Dernière ligne droite pour clore ce développement laborieux pour moi, il faut que je puisse dupliquer le jour d'avant.

  20. #20
    Membre régulier Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Points : 92
    Points
    92
    Par défaut
    Je n'arrive pas a dupliquer pour le moment, et je viens de me rendre compte d'un autre problème.
    Quand tu fais un ajout de ligne, et bien l'input type text garde le même nom

Discussions similaires

  1. Dupliquer des lignes
    Par PIEPLU dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/02/2011, 13h48
  2. [MySQL] Dupliquer des lignes d'une table dans une meme table
    Par HAbroc dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 18/06/2009, 21h22
  3. dupliquer des lignes
    Par PiliSql dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 21/07/2008, 13h08
  4. dupliquer des lignes lors d'un merge
    Par mitmit dans le forum SAS Base
    Réponses: 1
    Dernier message: 12/05/2008, 14h11
  5. Dupliquer des lignes de données
    Par PamelaGeek dans le forum Requêtes
    Réponses: 1
    Dernier message: 31/01/2006, 19h01

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