Bonjour,
Le développeur c# que je suis doit régler un problème PHP.
Le problème : j'y connais absolument rien.
J'ai un formulaire avec une liste déroulante de fournisseurs.
Quand on sélectionne un fournisseur j'ai un tableau avec la liste des article qu'il vend, le prix, etc..
Je dois mettre en place un tri asc/desc quand l'utilisateur clique sur l'entete d'une colonne.
Code du form :
Code des fonction php utilisés
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98 <? include("lib_articlesfournisseurs.php"); $conn = ConnectDB(); /** Liste des fournisseurs **/ $fournisseurs = select_fournisseurs($conn,"fr_societe"); $nb_fournisseurs = mysql_numrows($fournisseurs); if($nb_fournisseurs > 0){ $listeFournisseur = "<option value=\"\"></option>\n"; for($a = 0; $a < $nb_fournisseurs; $a++){ $rs_fournisseurs = mysql_fetch_array($fournisseurs); $listeFournisseur.= "<option value=\"$rs_fournisseurs[fs_id]\" "; if($rs_fournisseurs[fs_id] == $fournisseurChoisi){$listeFournisseur .= "selected";} $listeFournisseur.= ">$rs_fournisseurs[fr_societe]</option>\n"; } } /** Sélection des article du fournisseur choisi **/ if($fournisseurChoisi != ""){ $articles = select_articlesFournisseur($conn,$fournisseurChoisi); $nb_articles = mysql_numrows($articles); } ?> <div id="bigliste" style="position:absolute;width:695;height:590;top:100;left:128;z-index:3;overflow:auto;"> <table width="675" cellpadding="0" cellspacing="0" border="0"> <!--<tr><td colspan="2"> </td></tr>--> <tr> <td colspan="2" class="titre1"> <form method=post> <b> Gestion des article du fournisseur : <select name="fournisseurChoisi" onChange="submit();"> <?=$listeFournisseur?> </select> </b> </form> </td> </tr> <tr> <td colspan="2"> <? if($nb_articles > 0){ ?> <table width="675" cellpadding="2" cellspacing="0" class=impression height="100%"> <tr> <td class="enteteTab" align="center" width=495><b>Article</b></td> <td class="enteteTab" align="center" width=100><b>Prix</b></td> <td class="enteteTab" align="center" width=100><b>Quantité</b></td> </tr> <? for($b = 0; $b < $nb_articles; $b++){ $rs_articles = mysql_fetch_array($articles); $monprix=$rs_articles["prix"]; $topprix=select_topPrixarticles($conn,$rs_articles["art_id"]); $code_bulle="bulle_".$rs_articles["art_id"]; $bulle= "<DIV>"; $bulle.="<table border=0 width=100%>"; unset($topvariation); while($prix=mysql_fetch_array($topprix)) { $variation=intval(100*($prix["prix"]-$monprix)/$monprix); if (!isset($topvariation)) $topvariation=$variation; if ($prix["fs_id"]==$fournisseurChoisi) $bulle.= "<tr bgcolor=white><td>".$prix["societe"]."</td><td>".$prix["prix"]."</td><td>---</td></tr>"; else { if ($variation<0)$bulle.= "<tr bgcolor=green>"; else $bulle.= "<tr>"; $bulle.= "<td>".$prix["societe"]."</td><td>".$prix["prix"]."</td><td>$variation %</td></tr>"; } } $bulle.= "</table></DIV>"; //$les_bulles[]=$bulle; if ($b%2==0){ $bg="#ffffff"; } else { $bg="#eeeeee"; } if ($topvariation<0) $bg="red"; ?> <tr> <td class="ligne" bgcolor="<?=$bg?>"><?=stripslashes($rs_articles[art_libelle])?></td> <td class="ligne" bgcolor="<?=$bg?>" onmouseover="return escape('<?=$bulle ?>')"><?=$rs_articles[prix]?></td> <td class="ligne" bgcolor="<?=$bg?>"><?=stripslashes($rs_articles[art_quantite])?></td> </tr> <? } ?> </table> <? } ?> </td> </tr> </table> </div> <script language="JavaScript" type="text/javascript" src="/scripts/js/wz_tooltip.js"></script> <? ConnexionFerme($conn); ?>
J'ai essayé d'ajouter une variable ?tri incluse dans une HREF dans l'entetes des tableau. J'arrive a m'en sortir a peu près.
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 <? //Sélection des fournisseurs Function select_fournisseurs($conn,$ordre){ $requete = "SELECT * FROM fournisseurs order by $ordre"; $resultat = mysql_query($requete,$conn)or die("<b>Impossible de sélectionner les fournisseurs</b><br>".mysql_error()); return $resultat; } /** Sélection des article du fournisseur choisi **/ Function select_articlesFournisseur($conn,$fr_id){ $req = "select fournisseurs.fs_id,fournisseurs.fr_societe,fournisseurs.fs_contact,link_fournisArticles.lfa_prix as prix,articles.* "; $req.= "from fournisseurs,articles,link_fournisArticles where link_fournisArticles.lfa_artID=articles.art_id "; $req.= "and link_fournisArticles.lfa_frID=fournisseurs.fs_id and link_fournisArticles.lfa_frID=$fr_id order by fournisseurs.fs_id,articles.art_libelle"; $resultat = mysql_query($req,$conn)or die("<b>Impossible de sélectionner les articles du fournisseur</b><br><br>".mysql_error()); return $resultat; } ?>
Le problème c'est que ça réinitialise la liste déroulante lorsqu'on clique sur le lien de l'en-tetes.
Si vous aviez une solution
Merci d'avance.
Cdlt,
Mvk
Partager