génération de tableaux et de lignes

génération de tableaux et de lignes - PHP - Programmation

Marsh Posté le 03-02-2005 à 15:59:36    

salut all,
voila si je poste, c'est que j'ai un pb plutôt d'ordre "conceptuel", j'éssaie de m'expliquer clairement.
 
Je dois en fait générer un nombre de tableau définie par l'utilisateur, chaque tableau ayant un nombre de ligne lui-même définie.
 
J'ai pensé à "l'interface" suivante :
demander le nombre de tableau dans un input, ensuite la personne valide, les tableaux sont créés

Code :
  1. pour i=1 à nb_de_tableau crééer un tableau


Cependant je ne vois pas comment créer les lignes de chaque tableau.
En effet, il semble qu'on ne puisse imbriquer des <form>.
 
J'aimerais donc un peu d'aide pour m'aider à générer les lignes, à moins que ce soit l'interface en elle-même qui soit mal concu.
 
En espérant avoir été clair,
Merci d'avance  :hello:


Message édité par $man le 03-02-2005 à 16:56:28
Reply

Marsh Posté le 03-02-2005 à 15:59:36   

Reply

Marsh Posté le 03-02-2005 à 16:13:35    

Pistes :
 
- Tu ne vas pas imbriquer tes forms, mais rien ne t'empêche d'avoir plusieurs forms les uns à la suite des autres;
 
- Si tu dois impérativement tout mettre dans un même form, à toi de donner des identifiants non ambigus à chaque tableau->ligne, pe t4-l6 ou autre immondice du genre.
 
Maintenant ton histoire de demander le nb de tableaux à l'utilisateur, c'est bof. Des boutons 'add tab' et 'add lines' et leurs amis 'delete' seraient sans doute plus sympa  - sans rapport direct avec ta question.
 
Autre design : master/detail entre tableau et ligne (tu listes les tableaux, et pour chacun, un lien qui ouvre une page de détails).
 
Ce ne sont que des suggestions, à voir si ça convient à ta cuisine.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 03-02-2005 à 16:20:53    

Salut,
merci pour toutes les remarques, j'ai un peu de mal à imaginer une interface "user friendly" donc ajouter un tableau et des lignes ca me semble sympa. Je pense que le 2eme point est pas mal, tout est vu d'un coup d'oeil :)
 
je vois de ce coté :jap:
 
EDIT : mieux vaut utiliser d'autre fichiers ou un $PHP_SELF peut convenir ?


Message édité par $man le 03-02-2005 à 16:26:15
Reply

Marsh Posté le 03-02-2005 à 16:57:21    

Salut,
je me suis penché sur la solution évoquée ci-dessuus et je bloque deja pour créer simplement des tableaux :(
 

Code :
  1. <html>
  2. <head>
  3.   <title>Créer un tableau</title>
  4. </head>
  5. <body>
  6. <form method="POST" action="<?php echo $PHP_SELF; ?>">
  7. <input type="submit" name="add_table" value="Ajouter un tableau">
  8. </form>
  9. <?php
  10. $nb=1;
  11. if (isset($_POST['add_table']))
  12. {
  13. $nb++;
  14. }
  15. for ($i=1;$i<=$nb;$i++)
  16. {
  17. echo "<table border=\"1\"><tr><td>LOL</td></tr></table>";
  18. }
  19. ?>
  20. </body>
  21. </html>


 
Ca ne marche qu'une seule fois en fait car le formulaire n'est soumis qu'une fois. J'ai pensé à des header, mais je perds ma valeur de $nb dans ce cas.
 
merci


Message édité par $man le 03-02-2005 à 16:59:51
Reply

Marsh Posté le 03-02-2005 à 17:34:39    

Ben utilise un champs caché indiquant le nombre de tableaux déjà en place :)

Reply

Marsh Posté le 04-02-2005 à 09:29:23    

Oui, mais comment, on ne peut poster qu'une seule fois.
Dans le cas de l'utilisation d'un header comment incrémenter $nb dans ce cas ?
merci :)

Reply

Marsh Posté le 04-02-2005 à 09:43:52    

$man a écrit :

Oui, mais comment, on ne peut poster qu'une seule fois.


la solution proposée par naceroth fonctionne.
 

Code :
  1. <?php
  2. if (isset($_POST['nb'])) $nb=$_POST['nb']+1;
  3. else $nb = 1;
  4. ?>
  5. <html>
  6. <head>
  7.   <title>Créer un tableau</title>
  8. </head>
  9. <body>
  10. <form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
  11. <input type="hidden" name="nb" value="<?php echo $nb; ?>">
  12. <input type="submit" name="add_table" value="Ajouter un tableau">
  13. </form>
  14. <?php
  15. for ($i=1;$i<=$nb;$i++)
  16. {
  17. echo "<table border=\"1\"><tr><td>LOL</td></tr></table>";
  18. }
  19. ?>
  20. </body>
  21. </html>

Reply

Marsh Posté le 04-02-2005 à 09:48:39    

Salut,
je vais regarder ca, sinon je viens de passer par les sessions et ca fonctionne également, cependant ce bout de code est peut etre miexu
merci :)
 
EDIT: un truc moyen, c'est que si la personen a entrer du texte dans l'input, celui-ci est "reseter"


Message édité par $man le 04-02-2005 à 09:57:18
Reply

Marsh Posté le 04-02-2005 à 10:02:25    

$man a écrit :

un truc moyen, c'est que si la personen a entrer du texte dans l'input, celui-ci est "reseter"


heu quel input ?

Reply

Marsh Posté le 04-02-2005 à 10:05:54    

arf,
oui, ces tableaux vont être rempli par les utilisateurs à l'aide d'input. Je sens que ca va être le bo*del :(
merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed