Categories > TinyButStrong general (FR) >

Générer tableau sans connaitre nombre de colonnes

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: cerede2000
Date: 2010-07-28
Time: 13:21

Générer tableau sans connaitre nombre de colonnes

Bonjour,

J'ai un petit soucis. D'abord voici mon code :
foreach($tab as $arr) {
echo '<tr>';
foreach($arr as $ligne) {
  echo '<td>' . $ligne . '</td>';
}
echo '</tr>';
}

Je n'arrive pas à faire mon template pour que cela produise le même résultat :(

Que dois je mettre?

<tr>
    <td>[tablevalblk.val;block=td]</td>
</tr>

Merci.
By: Skrol29
Date: 2010-07-29
Time: 00:00

Re: Générer tableau sans connaitre nombre de colonnes

Salut Cerede2000,

TBS utlise les clés de tableaux pour afficher leurs valeurs.
La colonne 'val' n'est utilisé que pour les tableaux simples, là tu as un tableau imbriqué.

Si les clés de tes tableaux imbriqués sont par exemple cle1, cle2, cle3, ... alors ton template doit être plutôt comme ça:
<tr>
<td>[tablevalblk.cle1;block=td]</td>
<td>[tablevalblk.cle2]</td>
<td>[tablevalblk.cle3]</td>
</tr>
By: cerede2000
Date: 2010-07-29
Time: 10:55

Re: Générer tableau sans connaitre nombre de colonnes

Hum je ne connais pas à l'avance la taille du tableau (colonnes et lignes) Je ne peut donc pas procéder comme ceci.

J'ai réussi avec :
<tr>[tablevalblk;block=tr]
        <td>[tablevalblk.[tableheaderblk.val;block=td;p1]]</td>
    </tr>
By: Skrol29
Date: 2010-07-29
Time: 14:16

Re: Générer tableau sans connaitre nombre de colonnes

Dans ce cas, il te faut faire une première passe sur la première ligne du tableau pour récupérer la liste des noms de colonne.

Après tu peux faire ta fusion en utilisant la technique des colonnes dynamiques, illustrées par l'exemple en ligne. Exemples > Colonnes dynamiques.
By: cerede2000
Date: 2010-07-29
Time: 15:35

Re: Générer tableau sans connaitre nombre de colonnes

<div>[onshow;block=div;when [var.tablename]==0]Aucune table selectionnee</div>
<table border="1">[onshow;block=table;when [var.tablename]!=0]
    <caption>Table [onshow.tablename]</caption>
    <tr>
        <th>[tableheaderblk.val;block=th;p1]</th>
    </tr>
    <tr>[tablevalblk;block=tr]
        <td>[tablevalblk.[tableheaderblk.val;block=td;p1]]</td>
    </tr>
</table>

C'est ce que je fait ;) On peut faire autrement niveau template?