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

PHP & Base de données Discussion :

Ajouter une ligne dans un tableau


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 26
    Points : 15
    Points
    15
    Par défaut Ajouter une ligne dans un tableau
    Bonjour à toutes et à tous.
    Je travail actuellement sur un logiciel et je suis confronté à un petit problème... Un premier formulaire me propose de créer un certain nombre d'étapes (autant que l'utilisateur le souhaite). Une fois son choix effectué, je lui génère autant de champs que nécessaire. Dans l'exemple de ma capture d'écran , l'utilisateur à demander à créer 3 étapes.

    Les numéros d'étapes sont générés automatiquement grâce à une boucle for (le $_SESSION['suivi_nbetapes'] étant la variable récupéré du premier formulaire):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for($nbetapes=1;$nbetapes<=$_SESSION['suivi_nbetapes'];$nbetapes++)



    Si mon utilisateur décide de supprimer une étape, il clique sur l'icône "croix rouge" ce qui supprime cette étape (sans supprimer le reste bien sûr) et repositionne le reste automatiquement. Par exemple, si l'utilisateur supprime l'étape 2, le A reste en étape 1 mais le C passe en étape 2. Cette partie fonctionne très bien mais là où le bas blesse, c'est au niveau de l'autre option...
    Pour être plus clair, ça donne ça :
    Etape 1 : A
    Etape 2 : C

    En effet, j'aimerai aussi que l'utilisateur puisse rajouter une étape vide entre deux étapes existantes via l'icône "flèche bleue". Par exemple, si l'utilisateur clique sur la flèche bleu de l'étape 1 (A), le A reste étape 1, une étape 2 vide se créé, le B devient étape 3 et le C étape 4... Et c'est là que ça coince, je n'arrive pas à générer cette étape vide entre deux étapes existantes !
    Pour être plus clair, ça doit donner ça :

    Etape 1 : A
    Etape 2 :
    Etape 3 : B
    Etape 4 : C

    Voici tout d'abord le code de ma suppression qui fonctionne bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    //Remise à niveau du nombre d'étapes
    for($nbetapes=1;$nbetapes<=$_SESSION['suivi_nbetapes'];$nbetapes++)
    {
       if($nbetapes >= $id)
            $_SESSION['suivi_intitule'][$nbetapes] = $_SESSION['suivi_intitule'][$nbetapes+1];
    }
    $_SESSION['suivi_nbetapes'] = $_SESSION['suivi_nbetapes']-1
    ;


    J'ai essayé de retourner ce code dans tous les sens pour obtenir l'effet inverse mais rien à faire, ça ne fonctionne pas... Est-ce que quelqu'un à une solution s'il vous plaît?
    Merci beaucoup !

  2. #2
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Salut,

    Essayes sur le même style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    //Remise à niveau du nombre d'étapes
    for($nbetapes=$_SESSION['suivi_nbetapes']+1;$nbetapes>$id;$nbetapes--)
    {
            $_SESSION['suivi_intitule'][$nbetapes] = $_SESSION['suivi_intitule'][$nbetapes-1];
    }
    $_SESSION['suivi_nbetapes'] = $_SESSION['suivi_nbetapes']+1
    //reste le cas du $id
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 26
    Points : 15
    Points
    15
    Par défaut
    Salut Fench et merci pour ta réponse.
    J'ai essayé ton code et voici le résultat (en ajoutant une étape après la 1) :

    Etape 1 : A
    Etape 2 : A
    Etape 3 : B
    Etape 4 : C
    Etape 5 :

    Comme tu peux le voir, il me créé un autre A et me rajoute l'étape vide en dernier...

    EDIT : J'ai rien dit pour l'étape vide (5). C'est moi qui est fait un doublon. J'ai juste le A en double...

    EDIT 2 : C'est bon j'ai trouvé ! Voici la solution :

    Salut et merci de ta réponse.
    Pendant que tu écrivais ton message, je suis arrivé à une solution mais qui ne correspond pas trop à ta proposition. Si quelqu'un se retrouve un jour confronté à ce problème, voici ma solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    //Remise à niveau du nombre d'étapes
    for($nbetapes=$_SESSION['suivi_nbetapes']+1;$nbetapes>$id;$nbetapes--)
    {
       if($nbetapes == $id+1)
             $_SESSION['suivi_intitule'][$id+1] = "";
       else
             $_SESSION['suivi_intitule'][$nbetapes] = $_SESSION['suivi_intitule'][$nbetapes-1];
    }
    Merci encore, a+

Discussions similaires

  1. Ajouter une ligne dans un tableau HTML
    Par grialat dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 06/04/2013, 16h11
  2. ajouter une ligne dans un tableau et afficher la valeur d'une variable
    Par dede94 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 03/05/2010, 17h24
  3. Réponses: 1
    Dernier message: 12/12/2008, 17h06
  4. Réponses: 9
    Dernier message: 15/06/2008, 11h13
  5. [vb6] Ajouter une ligne dans un tableau excel
    Par Asdorve dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 13/06/2006, 16h41

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