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

Langage PHP Discussion :

[Tableaux] Insertion dynamique ligne dans un tableau


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 193
    Points
    193
    Par défaut [Tableaux] Insertion dynamique ligne dans un tableau
    Salut.
    Dans mon application php qui est une sorte de pointeuse on peux rentrer son nombre d'heure travaillé par projet organisé à peux près comme ceci http://leon.baz.free.fr/111.jpg

    Cependant sur une même demi journée, une personne peux très bien avoir travaillé sur plusieurs projets à la fois.

    Pour cela on m'a demandé de pouvoir rajouter une ligne dynamiquement à l'endroit de la demi journée ou l'on veux insérer un travail sur un projet supplémentaire.

    Avez vous des idées pour savoir comment s'y prendre?

    J'avais eu l'idée de mettre à chaque fin de ligne une petite image avec un + qui ajouterait automatiquement une ligne mais je ne sais pas trop si cela est faisable.

    Merci de votre aide

  2. #2
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    oui, c'est faisable.

    Si tu fait ca en php, ca suppose un rechargement de page, donc un envoi de formulaire avec rechargement des données deja saisies.

    Apres il faut aussi que tu puisse le rentrer dans ta base, donc que les cardinalités entre un projet et une tranche horaire ne soient pas 1-1

    Tu peux ajouter un bouton + ayant un nom genre :
    plus['ddmmyyyy-am']
    plus['ddmmyyyy-pm']
    plus['ddmmyyyy-am']
    plus['ddmmyyyy-pm']
    ...

    pour savoir facilement a quelle ligne il faut ajouter un select.
    Sinon tu met juste un bouton + dans la premiere ligne (l'entete) et ca ajoute des selects sur toutes les lignes (ce qui suppose une valeur par defaut correspondant a une ligne vide)

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 193
    Points
    193
    Par défaut
    Merci bien pour cette réponse.
    Sinon pourrais je avoir plus de précision sur ceci?

    Sinon tu met juste un bouton + dans la premiere ligne (l'entete) et ca ajoute des selects sur toutes les lignes (ce qui suppose une valeur par defaut correspondant a une ligne vide)
    Merci beaucoup

  4. #4
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    ben en mettant un + sur l'entete, ca peut ajouter automatiquement un nouveau select sur chaque ligne (pratique pour ceux qui font régulierement plusieurs projets a chaque fois... ca evite de faire 1 clic pour chaque demie journée).

    Mais ca veux dire que tu aura sans doute des selects de projets qui devront avoir une valeur nulle car ils ne seront pas remplis

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 193
    Points
    193
    Par défaut
    Ok merci.
    Mais je reste perplexe quand à l'organisation.

    Car le fait de cliquer sur + ne doit pas rajouter des select aux lignes mais créer de nouvelles lignes qui elles seront organisées comme les précédentes.

  6. #6
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    ah, ok...

    j'avais pas vu le champ "nombre d'heure" ;o)

    Peut etre alors un bouton + a coté de Matin/Apres midi serait plus approprié.
    En affichant des lignes supplementaires en dessous (sans recopier le jour et la date pour bien voir que ca se rattache au jour au dessus par exemple)

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 193
    Points
    193
    Par défaut
    Yes fladnag l'idée est bien la me semble t'il.

    Mais maintenant comment faire ajouter des lignes dynamiquement?

    COmme dis precemment faut un rechargement de page.
    Ceci veux dire qu'il faut un form.

    Cependant tout mon tableau est fait comme ceci
    <form>
    tableaux
    </form>

    J'ai essayé de mettre un autre form dans ce form qui s'appliquerait juste au traitement du bouton + mais en vain...
    En effet dès je clic sur mon + il fait le traitement de la <form> englobant le tout, ce qui fait que ca insère mes données.

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 193
    Points
    193
    Par défaut
    Si j'ai bien compris faut que je fasse plusieurs submits dans un seul form
    Ensuite je récupère quel submit a été cliqué et je fait le traitement adpaté?

    Correct?

  9. #9
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    il te faut bien un seul form, mais tu as plusieurs boutons qui sont de type "submit"

    par contre, tu peux determiner le bouton sur lequel tu as cliqué :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <form method=POST>
    <input type=submit name='action[valider]' value='Valider'/>
    <input type=submit name='action[plus]' value='+' />
    </form>
    Sur la page appelée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    if (isset($_POST['action'])) {
    reset($_POST['action']);
    list($action,$valeur) = each($_POST['action']);
    switch($action) {
    case 'valider' :
    // faire les operations de sauvegarde en base
    break;
    case 'plus' :
    // modifier ce qu'il faut pour réafficher le formulaire avec une ligne en plus
    break;
    }
    }
    Tu peux bien sur modifier tout ca pour faire un nom qui ressemble a name='action[plus][2006-03-28am]' par exemple, meme si c'est alors un peu plus difficile a parser.

    Tu peux aussi faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    name='action[plus@2006-03-28am]'
    puis faire un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    reset($_POST['action']);
    list($action,$valeur) = each($_POST['action']);
    list($action, $date) =explode('@', $action);

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 193
    Points
    193
    Par défaut
    Ok merci ca roule.

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 193
    Points
    193
    Par défaut
    Merci

  12. #12
    Membre averti Avatar de nicocsgamer
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    321
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 321
    Points : 342
    Points
    342
    Par défaut
    En javascript avec l'attribut display.

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 193
    Points
    193
    Par défaut
    Avec l'utilisation de div qu'on affiche et qu'on cache on peux insérer un calque entre deux lignes d'un tableau?

Discussions similaires

  1. [Prototype] Insertion de lignes dans un tableau
    Par rawsrc dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 17/12/2008, 13h20
  2. [Tableaux] Effacer une ligne dans un tableau
    Par gpsevasion dans le forum Langage
    Réponses: 8
    Dernier message: 22/01/2007, 16h38
  3. [Tableaux] Problème de lignes dans un tableau
    Par Perymanu dans le forum Langage
    Réponses: 10
    Dernier message: 18/12/2006, 20h31
  4. Réponses: 3
    Dernier message: 06/10/2006, 15h46
  5. [Tableaux] Suppression de lignes dans un tableau
    Par lodan dans le forum Langage
    Réponses: 9
    Dernier message: 15/09/2006, 20h08

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