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] Afficher la valeur d'un tableau {$tableau.$objet->getId()}


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 31
    Par défaut [Smarty] Afficher la valeur d'un tableau {$tableau.$objet->getId()}
    Bonjour à tous,

    Je cherche à faire quelque chose, qui me parait simple, avec Smarty (pour lequel je débute).

    Soit $tableau et $mes_objets assignés dans mon fichier php.
    Par exemple, $tableau[0] = lundi, $tableau[1] = mardi, ...
    $mes_objets est un tableau d'objet. Objet contient une méthode getId().

    Dans mon tpl, lorsque je fais :

    {foreach from=$mes_objets item=objet name=objets}
    {$tableau.$objet->getId()}
    {foreach}

    J'obtiens une erreur.
    Par contre
    {$tableau.1} -> affiche quelque chose
    {$objet->getId()} -> affiche 1.

    Question : Ou est donc mon erreur ?

    Merci à tous.

  2. #2
    Membre Expert
    Avatar de eric.pommereau
    Homme Profil pro
    Ingénieur, pôle cartographie
    Inscrit en
    Décembre 2004
    Messages
    715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur, pôle cartographie
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2004
    Messages : 715
    Par défaut
    Bonjour,

    Voilà coment tu peux t'y prendre :

    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
    19
    20
    21
    	class maClasse {
    		private $id = -1;
    		public function __construct() {
    			$this->id = rand();
    		}
    		public function getId() {
    			return $this->id;
    		}
    	}
     
        $oSmarty = new Smarty();
     
        $tableau[] = new maClasse();
    	$tableau[] = new maClasse();
    	$tableau[] = new maClasse();
    	$tableau[] = new maClasse();
    	$tableau[] = new maClasse();
     
    	$oSmarty->assign('tableauObj', $tableau);
     
    	$oSmarty->display('index.tpl');
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    {section name=idxMonTableau loop=$tableauObj}
      - {$tableauObj[idxMonTableau]->getId()} <br />
    {/section}
    Il me semble plus adapté d'utiliser section pour les tableaux indexés.

    @+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 31
    Par défaut
    Hello,

    Merci pour ta réponse, par contre, je crois que l'on ne s'est pas compris

    Pour l'exemple :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    class maClasse {
    	private $id = -1;
    	public function __construct() {
    		$this->id = rand(); // On considère qu'il renvoi entre 0 et 6 pour l'exemple 
    	}
    	public function getId() {
    		return $this->id;
    	}
    }
     
    $oSmarty = new Smarty();
     
    $tableau[] = new maClasse();
    $tableau[] = new maClasse();
    $tableau[] = new maClasse();
    $tableau[] = new maClasse();
    $tableau[] = new maClasse();
     
    $jours = array();
    $jours[0] = 'Dimanche';
    $jours[1] = 'Lundi';
    $jours[2] = 'Mardi';
    $jours[3] = 'Mercredi';
    $jours[4] = 'Jeudi';
    $jours[5] = 'Vendredi';
    $jours[6] = 'Samedi';
     
    $oSmarty->assign('tableauObj', $tableau);
    $oSmarty->assign('jours', $jours);
     $oSmarty->display('index.tpl');
    Ensuite, on a :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    {foreach from=$tableauObj item=objet name=objets}
          {$jours.$objet->getId()}
    {foreach}
    J'obtiens une erreur.

    Par contre
    {$jours.1} -> affiche lundi
    dans la boucle, {$objet->getId()} -> affiche 1.

    En espérant que cela soit plus clair

    Merci beaucoup,

    Stoomm

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 31
    Par défaut
    Je me répond moi même :

    La solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    {foreach from=$tableauObj item=objet name=objets}
       {assign var='id' value=$objet->getId()} 
       {$jours.$id}
    {/foreach}
    Je ne trouve pas cela intuitif, si quelqu'un a plus simple...

    A+,

    Stoomm.

Discussions similaires

  1. [WD10] Afficher des valeurs dans un tableau
    Par dj-julio dans le forum WinDev
    Réponses: 4
    Dernier message: 19/03/2014, 11h32
  2. Réponses: 5
    Dernier message: 23/02/2011, 18h44
  3. [PHP 5.0] [array] afficher les valeurs d'un tableau à plusieurs éléments
    Par mdr_cedrick dans le forum Langage
    Réponses: 1
    Dernier message: 25/02/2009, 10h33
  4. [MySQL] Afficher les valeurs d'un tableau pour des cases à cocher
    Par tiesto95 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/12/2008, 16h45
  5. Afficher les valeurs d'un tableau dans la fenêtre d'exécution
    Par beegees dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 02/12/2008, 13h14

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