Bonjour à tous !
Je viens vers vous aujourd'hui car j'ai un problème dont l'issue m'échappe.
J'ai un tableau à double entrée : il possède un entête et un nombre connu de lignes dont la partie gauche est comme un entête.
Toutes les données sont récupérées de ma base de données MySQL via PDO.
Petit schéma du tableau que j'arrive à réaliser et explications du problème rencontré :
L'entête est construit via cette boucle :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <table border="1" width="590"> <thead> <tr> <th align="center"></th> foreach($lesEquipements as $unEquipement) { echo "<th align=\"center\">$unEquipement->nom</th>"; } echo "</tr>"; </thead>
Et la partie de gauche et centrale est construite de cette manière là actuellement :
Code php : 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 <tbody> foreach($lesTraits as $unTrait) { echo "<tr> <td>{$unTrait->nom}</td> <td><select id=\"{$unTrait->id}:{$lesEquipements[0]->id}\" onchange=\"majEtatTrait(this);\"><option value=\"-1\"></option><option value=\"1\">Connu</option><option value=\"2\">En cours</option><option value=\"3\">Recherchable</option><option value=\"4\">Inconnu</option></select></td> <td><select id=\"{$unTrait->id}:{$lesEquipements[1]->id}\" onchange=\"majEtatTrait(this);\"><option value=\"-1\"></option><option value=\"1\">Connu</option><option value=\"2\">En cours</option><option value=\"3\">Recherchable</option><option value=\"4\">Inconnu</option></select></td> <td><select id=\"{$unTrait->id}:{$lesEquipements[2]->id}\" onchange=\"majEtatTrait(this);\"><option value=\"-1\"></option><option value=\"1\">Connu</option><option value=\"2\">En cours</option><option value=\"3\">Recherchable</option><option value=\"4\">Inconnu</option></select></td> <td><select id=\"{$unTrait->id}:{$lesEquipements[3]->id}\" onchange=\"majEtatTrait(this);\"><option value=\"-1\"></option><option value=\"1\">Connu</option><option value=\"2\">En cours</option><option value=\"3\">Recherchable</option><option value=\"4\">Inconnu</option></select></td> <td><select id=\"{$unTrait->id}:{$lesEquipements[4]->id}\" onchange=\"majEtatTrait(this);\"><option value=\"-1\"></option><option value=\"1\">Connu</option><option value=\"2\">En cours</option><option value=\"3\">Recherchable</option><option value=\"4\">Inconnu</option></select></td> <td><select id=\"{$unTrait->id}:{$lesEquipements[5]->id}\" onchange=\"majEtatTrait(this);\"><option value=\"-1\"></option><option value=\"1\">Connu</option><option value=\"2\">En cours</option><option value=\"3\">Recherchable</option><option value=\"4\">Inconnu</option></select></td> <td><select id=\"{$unTrait->id}:{$lesEquipements[6]->id}\" onchange=\"majEtatTrait(this);\"><option value=\"-1\"></option><option value=\"1\">Connu</option><option value=\"2\">En cours</option><option value=\"3\">Recherchable</option><option value=\"4\">Inconnu</option></select></td>"; } </tbody> *
Ce que doit faire ce code en entier c'est construire un tableau à double entrée et permettre la modification d'une valeur en sélectionnant l'option dans la liste déroulante. A ce moment là je fais un appel ajax qui prend en paramètres les "coordonnées" de la case sélectionnée : quelle ligne et quelle colonne a t'on sélectionné.
La technique proposée fonctionne, j'arrive bien à récupérer les valeurs ligne-colonne de la case sélectionnée.
Problèmes rencontrés : Impossible lors de l'affichage du tableau de présélectionner la valeur précédemment enregistrée pour une case, donc de récupérer l'état d'une case et de l'afficher.
Impossible également de construire ce genre de tableau sans connaître à l'avance le nombre de colonnes qu'il y aura : le nombre de "TD" est en dur dans le code.
Ce que j'aimerais c'est réussir à construire ce genre de tableau (entête, entête de gauche et données) au sein d'une double boucle (une qui parcourt mes données d'entête, une qui parcourt les données d'entête de gauche et pour chacune, récupérer les données et les afficher)
Existe il une méthode ou une autre solution pour arriver au même résultat avec les problèmes actuels résolus et propre au niveau du code ?
Je ne sais pas si j'ai été clair, c'est pas un problème facile à expliquer et n'hésitez pas à poser des questions si vous avez besoin d'avantages d'informations.
Je vous remercie par avance de l'intérêt que vous pourrez porter à mon problème.
Garkan
Partager