Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] [Résolu] Repérer la première itération dans un {foreach}

Posted by sylozof on 01/10/2008 15:51

Bonjour

Dans un template, j'ai un code avec un foreach dans ce genre

 {foreach $products as $prod}
 <label><input type="radio" name="prod" id="{$prod->prod_id}" />{$prod->prod_name}</label>
 {/foreach}

Ce qui donne un résultat du genre

 <label><input type="radio" name="prod" id="12" />Produit 1</label>
 <label><input type="radio" name="prod" id="17" />Produit 2</label>
 <label><input type="radio" name="prod" id="56" />Produit 3</label>
 <label><input type="radio" name="prod" id="87" />Produit 4</label>

Ce que j'aurais voulu, c'est ajouter l'attribut checked="checked" au premier élément de la liste, pour qu'il y en ait au moins un qui soit sélectionné par défaut. Donc le résultat ressemblerait à ça :

 <label><input type="radio" name="prod" id="12" checked="checked" />Produit 1</label>
 <label><input type="radio" name="prod" id="17" />Produit 2</label>
 <label><input type="radio" name="prod" id="56" />Produit 3</label>
 <label><input type="radio" name="prod" id="87" />Produit 4</label>

Est-ce qu'il y a un moyen ? Merci d'avance.

  [Opened] Re: Repérer la première itération dans un {foreach}

Reply #1 Posted by bballizlife on 01/10/2008 16:12

  {foreach $products as $k => $prod}
        <label><input type="radio" name="prod" id="{$prod->prod_id}"{if $k == 0} checked="checked"{/if}/>{$prod->prod_name}</label>
  {/foreach}

Si $products vient d'une dao et est donc un itérateur, $k devrait être numérique et au final ça devrait fonctionner


N'importe comment c'est dans la doc

  [Opened] Re: Repérer la première itération dans un {foreach}

Reply #2 Posted by laurentj on 01/10/2008 16:17

Ne pas oublier non plus de faire un échappement correct :

  {$prod->prod_name|eschtml}
;-)

  [Opened] Re: Repérer la première itération dans un {foreach}

Reply #3 Posted by sylozof on 01/10/2008 16:54

Merci, c'est nickel, et merci pour le rappel eschtml.

Tu n'as pas fini de me supporter, j'ai encore quelques questions (mais à chaque question sa discussion) :)

  [Opened] Re: [Résolu] Repérer la première itération dans un {foreach}

Reply #4 Posted by laurentj on 01/10/2008 20:52

Pas de problème pour les questions, le forum est là pour ça ;-)

 
Page
  1. Re: Repérer la première itération dans un {foreach}