Bonjour,
Je m'arrache les cheveux pour afficher un tableau.
J'aimerai qu'il soit classé par catégories, et que les catégories ne s'affichent que si un produits de cette catégorie est choisi.
Le tableau initial est complété depuis une base de donnée, dont voici le code (choix produits.php) :
Je récupère le formulaire sur la page confirm.php avec le code suivant :
Code : 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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65 <form method="post" action="founitures_recap.php"> <div id="tableau"> <table width="100%"> <thead> <tr> <th scope="col">DOCUMENTS</th> <th scope="col">APERÇU</th> <th scope="col">CONDITIONNEMENT</th> <th scope="col">MAXI<br>AUTORISÉ</th> <th scope="col">QUANTITÉ<br>SOUHAITÉE</th> </tr> </thead> <tbody> <?php $nbr_cat = 0; //incrémente le nbr de catégories $nbr_fourni = 0; //incrémente le nbr de fournitures //On selectionne les categories while ($cat = mysql_fetch_array($fournitures_cat)) { echo '<tr > <td colspan="5" class="fbleuclair" align="center">'.$cat['nom_fournit_cat'].'</td> </tr >'; //On selectionne les fournitures de la categorie en cours $fournitures_liste_cat = mysql_query("SELECT * FROM fournitures_liste WHERE id_f_cat='".$cat['id_f_cat']."' AND online_f = 'on' ORDER BY id_f_cat ASC"); while($contenu = mysql_fetch_array($fournitures_liste_cat)) { ?> <tr > <th scope="row" class="fblanc" align="left"><?php echo $contenu['nom_fournit']?></th> <th scope="row" class="fblanc" align="center"><a href=""><img src="../images_fournitures/petites/<?php echo $contenu['image_f']?>" style="border: 1px solid #CCCCCC;"></a> </th> <th scope="row" class="fblanc" align="center"><?php echo $contenu['condit_f']?></th> <th scope="row" class="forangeclair" align="center"><?php echo $contenu['max_cde_f']?></th> <th scope="row" class="fvert" align="center"> <input name="qte_<?php echo $nbr_fourni ?>" type=text class="inptableautext" value=""> </th> </tr> </tbody> <input type ="hidden" name ="nom_fournit_<?php echo $nbr_fourni ?>" value =" <?php echo $contenu['nom_fournit'] ?>"> <input type ="hidden" name ="image_f_<?php echo $nbr_fourni ?>" value =" <?php echo $contenu['image_f'] ?>"> <input type ="hidden" name ="condit_f_<?php echo $nbr_fourni ?>" value =" <?php echo $contenu['condit_f'] ?>"> <input type ="hidden" name ="max_cde_f_<?php echo $nbr_fourni ?>" value =" <?php echo $contenu['max_cde_f'] ?>"> <input type="hidden" name="catqt_<?php echo $nbr_fourni ?>" value="<?php echo $nbr_cat;?>"> <input type="hidden" name="categorie<?php echo $nbr_cat ?>" value="<?php echo $cat['nom_fournit_cat'];?>"> <?php $nbr_fourni++; } $nbr_cat++; } ?> </table> <input type="hidden" name="nbr_cat" value="<?php echo $nbr_cat;?>"> <input type="hidden" name="nbr_fourni" value="<?php echo $nbr_fourni;?>"> <p align="center"><input type="submit" id="valider" name="submit_achat_fournitures" value=""></p> </form>
Voilà ce que j'obtiens en résultat dans confirm.php.
Code : 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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 <form method="post" action="<?php $_SERVER['PHP_SELF'] ?> "> <div id="tableau"> <table width="100%"> <thead> <tr> <th scope="col">DOCUMENTS</th> <th scope="col">APERÇU</th> <th scope="col">CONDITIONNEMENT</th> <th scope="col">MAXI<br>AUTORISÉ</th> <th scope="col">QUANTITÉ<br>SOUHAITÉE</th> </tr> </thead> <?php $nbr_cat = $_POST['nbr_cat']; $nbr_fourni = $_POST['nbr_fourni']; if ( $nbr_fourni > 0 ){ for ($nc=0; $nc < $nbr_cat;$nc++){ $cat = $_POST['categorie'.$nc]; echo '<tr><td colspan="5" class="fbleuclair" align="center">'.$cat.'</td></tr >'; for ($nf=0; $nf < $nbr_fourni;$nf++){ $nom_fournit = $_POST['nom_fournit_'.$nf]; $image_f = $_POST['image_f_'.$nf]; $condit_f = $_POST['condit_f_'.$nf]; $max_cde_f = $_POST['max_cde_f_'.$nf]; $qte = $_POST['qte_'.$nf]; $catqt = $_POST['catqt_'.$nf]; /*$maxi = $_POST['maxi'.$i];*/ if ($qte <> "" && $catqt == $nc /* et qte_cat == cat0 */){ echo '<tr><th scope="col">'.$nom_fournit.'</th><th scope="col">'.$image_f.'</th><th scope="col">'.$condit_f.'</th><th scope="col">'.$max_cde_f.'</th><th scope="col">'.$qte.'</th></tr>'; } } } } ?> </table> <p align="center"> <input type="submit" id="modifier" name="submit_modif_fournitures" value=""> <input type="submit" id="confirmer" name="submit_confirm_fournitures" value=""> </p> </div> </form>
Dans l'exemple ci-dessus, le client a choisi un produit dans la catégorie "outils".
J'aimerai que les différentes catégories (divers, cadeau de bienvenue...) n'apparaissent que si un produit de la catégorie est choisi.
Je pense que je ne suis pas très loin de la solution, mais j'y suis depuis 2 jours...Pfffff.
Auriez-vous une idée?
Merci :-)
Partager