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] Passage d'une variable tpl à une page php


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 78
    Points : 42
    Points
    42
    Par défaut [Smarty] Passage d'une variable tpl à une page php
    Bonjour tout le monde,

    je souhaiterai passer une variable que je calcule dans un tpl à un fichier php sans passer ni par un GET ni par POST, j'ai cherché dans plusieurs tutos mais je n'ai pas trouvé réponse à ma question, j'ai utilisé plusieurs méthodes comme inclure du code php dans le tpl afin de créer une variable session voici ce que j'ai fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    {php}
    session_start();
     session_unregister("amount");
    $amount=$smarty.{$total};
    $_SESSION['amount']=$amount;
    session_register("amount");		{/php}
    mais cela ne marche pas il ne reconnait pas {$total} calculé en haut de la page.

    aussi j'ai utilisé ce bout de code dans la page de destination :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $dead = $smarty->fetch('commande.tpl');
    $amount = $smarty->get_template_vars('total');
    mais il m'affiche 0 le premier assign de total car la variable total est assigné à plusieurs reprises car je boucle pour faire un calcul dessus.

    merci d'avance pour ceux qui répondrons à ma demande .

  2. #2
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 145
    Points : 91
    Points
    91
    Par défaut
    en regardant rapidement :
    je me demande si tu ne devrais pas refermer ta balise {php} juste avant d'écrire ta variable smarty {$total}, sans ça, il me semble que c'est normal que {$total} ne soit pas calculé.
    essayes ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    {php}
    session_start();
    session_unregister("amount");
    $amount=$smarty.{/php}{$total}{php};
    $_SESSION['amount']=$amount;
    session_register("amount");
    {/php}

  3. #3
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 78
    Points : 42
    Points
    42
    Par défaut
    j'ai déjà essayé mais ça ne marche pas ça bloque complétement l'affichage.

  4. #4
    Membre habitué Avatar de giltonic
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 109
    Points : 137
    Points
    137
    Par défaut
    Citation Envoyé par foulla Voir le message
    Bonjour tout le monde,

    je souhaiterai passer une variable que je calcule dans un tpl à un fichier php sans passer ni par un GET ni par POST, j'ai cherché dans plusieurs tutos mais je n'ai pas trouvé réponse à ma question, j'ai utilisé plusieurs méthodes comme inclure du code php dans le tpl afin de créer une variable session voici ce que j'ai fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    {php}
    session_start();
     session_unregister("amount");
    $amount=$smarty.{$total};
    $_SESSION['amount']=$amount;
    session_register("amount");		{/php}
    mais cela ne marche pas il ne reconnait pas {$total} calculé en haut de la page.

    aussi j'ai utilisé ce bout de code dans la page de destination :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $dead = $smarty->fetch('commande.tpl');
    $amount = $smarty->get_template_vars('total');
    mais il m'affiche 0 le premier assign de total car la variable total est assigné à plusieurs reprises car je boucle pour faire un calcul dessus.

    merci d'avance pour ceux qui répondrons à ma demande .
    Personnellement je ne comprends pas pourquoi vous essayez de recoder du php dans un template smarty. Autant l'ecrire dans le fichier .php non ? parce que c'est la philosophie "smarty" : le tpl est là pour l'affichage pas pour repasser des variables a du php, (si ?? je me plante ?)

    .php + .tpl => fichier au navigateur client.

    Donc plutôt que de mettre ça dans le .tpl faites vos récups de données de session dans le .php.
    Car il est fort possible qu'un petit bout de données (un espace etc...) soit déjà envoyer au navigateur et dans ce cas, il n'est plus possible d'intervenir sur les variables de session. (Les sessions c'est dans le header de la page).

  5. #5
    Membre éclairé Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Points : 779
    Points
    779
    Par défaut
    Personnellement je ne comprends pas pourquoi vous essayez de recoder du php dans un template smarty. Autant l'ecrire dans le fichier .php non ? parce que c'est la philosophie "smarty" : le tpl est là pour l'affichage pas pour repasser des variables a du php, (si ?? je me plante ?)
    Je vais te donner un exemple assez simple car je suis dans le meme cas....

    Prenons par exemple un site de football, tu as des pages diverses et variées comme des pages de joueurs, de stades, de competitions etc...

    Disons que tu as un site en 3 bandes verticales. A gauche le menu, au centre les pages et a droite les extras-infos....

    Dans les extra-infos, on va dire que tu peux mettre a peu pres n'importe quoi, mais que pour les pages competitions et seulement quand tu te trouve dans une page competition, tu affiches la table de classement de la competition consultées....

    Comme tu n'as pas envie de gérer cette table de classement dans ton script, tu fais un petit script a part, qui ne renvoi que le tableau de la competition...
    Comme cela tu ne pollue pas tous tes scripts avec ces extras-infos, et si tu ne veux plus de classement, tu vire l'include dans la template...

    C'est pour cela que c'est utile de passer une variable d'un tpl à un PHP via un include...

    @+
    cadou

Discussions similaires

  1. Passage de variable js a une page PHP
    Par patk29 dans le forum jQuery
    Réponses: 9
    Dernier message: 10/01/2014, 11h22
  2. [MySQL] Récupérer variable tpl dans une page PHP
    Par diabli73 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/09/2008, 10h12
  3. passage d'une page a une autre et la mise a jour des variables
    Par King_T dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 26/03/2007, 14h19
  4. Passage paramètres à une page PHP
    Par linar009 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 04/09/2006, 14h34
  5. passage d'une page a une autre
    Par vedder dans le forum Flash
    Réponses: 3
    Dernier message: 30/12/2003, 16h30

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