|
Publicité | ||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Date d'inscription: octobre 2008
Messages: 26
|
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 :
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 :
//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 |
|
Expert Confirmé
![]() Date d'inscription: mai 2002
Localisation: Auvergne
Messages: 1 567
|
Salut,
Essayes sur le même style: Code :
//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
__________________
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 |
|
Candidat au titre de Membre du Club
![]() Date d'inscription: octobre 2008
Messages: 26
|
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 :
//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]; } Dernière modification par kenru ; 28/10/2009 à 16h23. |
|
|
|
|
![]() |
||
Ajouter une ligne dans un tableau
|
||
| Outils de la discussion | |
|
|