Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Templates > Smarty
Smarty Forum d'entraide sur le moteur de templates Smarty. Avant de poster -> FAQ Smarty et Cours Smarty
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/09/2006, 13h22   #1
wkd
Nouveau Membre du Club
 
Inscription : janvier 2004
Messages : 112
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 112
Points : 33
Points : 33
Par défaut comment faire une boucle

Bonjour,

Juste une petite question qui bloque de continuer mon developpement.

Admettons que je voudrais faire:
Code :
1
2
3
4
 
$ctr=0;
for($ctr=0;$ctr<10;$ctr++)
 echo "<a href="lien$ctr.php">$ctr</a>
avec une template smarty, comment pourrai-je generer. je ne vois pas comment faire avec foreach :/
Si seulement je pouvais faire comme suit:
Code :
1
2
3
4
 
{ for($ctr=0;$ctr<10;$ctr++)
     <a href="lien$ctr.php>{$ctr}</a>
{/for}
merci infiniment
__________________
Le forum est là pour ceux qui ont déjà passé des heures et des heures à chercher la petite bête et qui n'ont pas encore trouvé le moyen de l'attraper...
wkd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2006, 13h38   #2
Membre du Club
 
Inscription : décembre 2004
Messages : 193
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2004
Messages : 193
Points : 59
Points : 59
Salut,

regarde la doc smarty du coté de {section}

Pour résumer, voici comment ca marche :

tu lui envoi un tableau php comme ca :

Code :
1
2
3
4
5
$ctr=0;
for($ctr=0;$ctr<10;$ctr++){
   $tab[] = "<a href="lien$ctr.php">$ctr</a>
 
}
ensuite dans tu l'assign a smarty

et ensuite tu le traite dans smarty
Code :
1
2
3
{section name=id loop=$url}
    {$url[id]}
{/section}
et voila, @+
jexl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2006, 13h53   #3
Expert Confirmé
 
Avatar de titoumimi
 
Inscription : décembre 2003
Messages : 3 717
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : décembre 2003
Messages : 3 717
Points : 3 082
Points : 3 082
solution complémentaire, en utilisant append dans ta boucle :

Code :
1
2
3
4
 
for($ctr=0;$ctr<10;$ctr++){
    $smarty->append('liste_liens', $ctr);
}
puis dans ton template :

Code :
1
2
3
4
 
{foreach name=liste_links item=lien from=$liste_liens}
     <a href="lien{$lien}.php">{$lien}</a>
{/foreach}
__________________
Globalement inoffensif
Merci de respecter les règles du forum.
Aucune question technique par MP !
_______________________________________________________________________
La rubrique Ruby / Rails recrute. Contactez moi !
_______________________________________________________________________
Cours Ruby et Ruby on Rails (RoR) - FAQ Ruby / Rails - Livres Ruby / Rails
Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
Tutoriaux HTML/CSS et PHP
titoumimi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2009, 13h25   #4
Membre habitué
 
Avatar de Dionyzos
 
Homme Denis Thevenot
Développeur & Designer Web
Inscription : février 2004
Messages : 124
Détails du profil
Informations personnelles :
Nom : Homme Denis Thevenot
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Développeur & Designer Web

Informations forums :
Inscription : février 2004
Messages : 124
Points : 111
Points : 111
Bonjour,

J'ai le même problème que wkd mais j'aimerais savoir s'il n'y a pas une solution plus simple qui éviterait de devoir créer "inutilement" une variable PHP, mais passer par une simple boucle basée sur un nombre d'itérations fini, que ce soit avec section, foreach ou autre ?

Merci
Dionyzos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2009, 13h36   #5
Membre habitué
 
Avatar de Dionyzos
 
Homme Denis Thevenot
Développeur & Designer Web
Inscription : février 2004
Messages : 124
Détails du profil
Informations personnelles :
Nom : Homme Denis Thevenot
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Développeur & Designer Web

Informations forums :
Inscription : février 2004
Messages : 124
Points : 111
Points : 111
Bon, bah j'ai trouvé la solution

Elle est toute simple :
Code :
1
2
3
4
 
{section name=boucle loop=10}
    <a href="lien{$smarty.section.boucle.index}.php>{$smarty.section.boucle.index}</a>
{/section}
C'est tout
Dionyzos est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h52.


 
 
 
 
Partenaires

Hébergement Web