IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[Smarty] Titrer une section avec un champ de tableau


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 20
    Par défaut [Smarty] Titrer une section avec un champ de tableau
    Bonjour à tous,

    Je souhaite réaliser l'action suivante :

    Suite à une requête SQL, j'ai un tableau que j'affiche grâce à la balise {section}.

    Jusque là pas de problème.

    En revanche, certains items de mon tableau sont récurents, exemple :
    Jean - Lille - Homme
    Marc - Paris - Homme
    Juliette - Lyon - Femme
    Emilie - Marseille - Femme

    Admettons que j'ajoute un ORDER BY sexe à ma requête SQL.

    Ce que je souhaiterais, c'est que ma section soit "titrée" à chaque fois que "sexe" change, pour que cela donne à l'intérieur de ma {section} :

    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
    <tr><td colspan=2>Hommes</td><tr>
    <tr>
    <td>Jean</td>
    <td>Lille</td>
    </tr>
    <tr>
    <td>Marc</td>
    <td>Paris</td>
    </tr>
    <tr><td colspan=2>Femmes</td><tr>
    <tr>
    <td>Juliette</td>
    <td>Lyon</td>
    </tr>
    <tr>
    <td>Emilie</td>
    <td>Marseille</td>
    </tr>
    Y a t-il en smarty, une possibilité de "grouper" et titrer les résultats d'une section, ou dois-je absolument faire 1 section par sexe ?

    Pour info, tout ceci n'est qu'un exemple pour la clarté de ma demande ; sur mon vrai tableau, je peux avoir une dizaine de "titres" comme Homme ou Femme...

    Merci d'avance!
    Ben

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Tu dois pouvoir le faire de la même façon qu'en php simple : tu affectes une variable intermédiaire qui contient le titre du tour précédent.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    {assign var='mavar' value}
    {foreach from=$myArray item='foo' name='boucle'}
    	{if $mavar != $foo.titre}
    		<tr><td colspan=2>{$foo.titre}</td><tr>
    		{assign var='mavar' value=$foo.titre}
    	{/if}
    	<tr>
    		<td>{$foo.un_champ}</td>
    		<td>{$foo.un_autre_champ}</td>
    	</tr>
    {/foreach}
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 20
    Par défaut
    Citation Envoyé par Celira Voir le message
    Tu dois pouvoir le faire de la même façon qu'en php simple : tu affectes une variable intermédiaire qui contient le titre du tour précédent.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    {assign var='mavar' value}
    {foreach from=$myArray item='foo' name='boucle'}
    	{if $mavar != $foo.titre}
    		<tr><td colspan=2>{$foo.titre}</td><tr>
    		{assign var='mavar' value=$foo.titre}
    	{/if}
    	<tr>
    		<td>{$foo.un_champ}</td>
    		<td>{$foo.un_autre_champ}</td>
    	</tr>
    {/foreach}
    Bonjour Celira,

    Merci d'avoir répondu aussi vite.

    Mon code est beaucoup plus complexe pour que ça puisse être utilisé "tel quel", mais je vois bien le principe, je vais essayer d'adapter ça.

    Merci beaucoup !!
    Ben

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/11/2007, 20h23
  2. Concaténation d'une chaine avec un champ
    Par arjo54 dans le forum Access
    Réponses: 0
    Dernier message: 27/07/2007, 14h34
  3. [WD8] Remplir une table avec un champ combo
    Par momobulle dans le forum WinDev
    Réponses: 11
    Dernier message: 19/07/2007, 13h45
  4. [D7],[ADO] : ordonner une table avec des champs référencés
    Par iam dans le forum Bases de données
    Réponses: 3
    Dernier message: 07/11/2006, 22h36
  5. [C#] Remplir une combobox avec le champs d'une table Access
    Par Damsou dans le forum Windows Forms
    Réponses: 4
    Dernier message: 23/06/2005, 16h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo