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] comment faire une boucle


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    wkd
    wkd est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 112
    Points : 65
    Points
    65
    Par défaut [Smarty] comment faire une boucle
    Bonjour,

    Juste une petite question qui bloque de continuer mon developpement.

    Admettons que je voudrais faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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...

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 213
    Points : 104
    Points
    104
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    {section name=id loop=$url}
        {$url[id]}
    {/section}
    et voila, @+

  3. #3
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    solution complémentaire, en utilisant append dans ta boucle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for($ctr=0;$ctr<10;$ctr++){
        $smarty->append('liste_liens', $ctr);
    }
    puis dans ton template :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  4. #4
    Membre habitué Avatar de Dionyzos
    Homme Profil pro
    Développeur & Designer Web
    Inscrit en
    Février 2004
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 134
    Points : 156
    Points
    156
    Par défaut
    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

  5. #5
    Membre habitué Avatar de Dionyzos
    Homme Profil pro
    Développeur & Designer Web
    Inscrit en
    Février 2004
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 134
    Points : 156
    Points
    156
    Par défaut
    Bon, bah j'ai trouvé la solution

    Elle est toute simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/04/2007, 13h31
  2. [VBA-E] Comment faire une boucle lorsqu'il y a des cellules vides
    Par Annick.w dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 01/02/2007, 22h39
  3. [AJAX] Comment faire une boucle XMLHttpRequest qui marche ?
    Par lancelot_13 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 19/01/2007, 12h00
  4. Comment faire une boucle ???
    Par HookerSeven dans le forum Access
    Réponses: 6
    Dernier message: 17/06/2005, 12h58

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