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] Tableau "imbriqué" en post


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 27
    Points : 18
    Points
    18
    Par défaut [Smarty] Tableau "imbriqué" en post
    Bonjour,
    Je débute avec smarty et je bloque sur quelque chose qui me parait simple à faire mais je n'ai pas trouvé de réponse sur le net.

    Voici ce que j'aimerai transcrire avec smarty :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    foreach($_langs as $lang)
    {
      echo '<div class="lang_'.$lang->getIsoCode().'">
         <input 
              type="text" 
              name="name['.$lang->getIsoCode().']" 
              value="'. (isset($_POST['name'][$lang->getIsoCode()])) ? $_POST['name'][$lang->getIsoCode()] : '' .'" 
         />
      </div>';
    }
    ?>

    Voici ce que j'ai fait avec smarty (qui ne marche pas):
    Code smarty : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    {foreach from=$_langs item=lang}
      <div class="lang_{$lang->getIsoCode()}">
         <input 
              type="text" 
              name="name[{$lang->getIsoCode()}]" 
              value="{if isset($smarty.post.name)}{$smarty.post.name[$lang->getIsoCode()]}{/if}" 
         />
      </div>
    {/foreach}

    Ce petit code me retourne cette erreur:
    Fatal error: Smarty error: [in category_form.tpl line 7]: syntax error: unrecognized tag:syntax error: unrecognized tag: $smarty.post.name[$lang->getIsoCode()] (Smarty_Compiler.class.php, line 446) in \Smarty\Smarty.class.php on line 1093
    Ce qu'il me pose problème c'est : $_POST['name'][$lang->getIsoCode()] ne j'arrive pas à retranscrire sur smarty.

    Pouvez vous m'aider car la je ne trouve vraiment va comment je peut faire ?

    Merci d'avance,
    Cordialement,
    FlYos

  2. #2
    Membre chevronné
    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 : 50
    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
    Points : 1 790
    Points
    1 790
    Par défaut
    Hello,

    D'abord la vérification isset() n'est pas nécéssaire avec Smarty, l'accès à une donnée qui n'est pas recensée dans Smarty retourne '' (chaine vide).

    De toute manière, à moins d'utiliser {php}{/php} (ce qui est déconseillé), il n'est pas possible de l'utiliser.

    Sinon ce petit exemple (qui s'inspire de ton cas de figure) devrait te mettre sur la voie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        $oSmarty = new Smarty();
        $lang = new langue();
     
        $oSmarty->assign('lang', $lang);  
        $oSmarty->display('index.tpl');
     
        class langue {
            public function getIsoCode(){
                return '1';
            }
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    {assign var="valeur" value=$lang->getIsoCode()}
    name = {$smarty.get.name[$valeur]}
    Affiche : "name = fr"

    Si l'url de la page invoquée est maPage.php?name[1]=fr

    Le passage par assign est obligatoire (ou bien je n'ai pas trouvé) pour récupérer la valeur de $lang->getIsoCode()

    @+

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 27
    Points : 18
    Points
    18
    Par défaut
    Merci bcp eric190,
    cela fonctionne correctement.

    problème résolu.

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

Discussions similaires

  1. [Smarty] Tableau smarty $tableau[$x][$y]
    Par weed dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 15/12/2009, 16h12
  2. [Smarty] objet foreach: accès tableau associatif imbriqué
    Par noobC dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 11/11/2009, 12h48
  3. Réponses: 2
    Dernier message: 07/11/2008, 16h48
  4. [Smarty] Tableau associatif
    Par julwarior dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 29/05/2007, 15h31
  5. [Smarty] Tableau dans fonction
    Par Mister Nono dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 23/01/2007, 13h45

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