Bonjour a tous ,
Je vous soumets un petit problème que je rencontre avec smarty. Pour résumer la fonctionnalité de la page, elle est composée d'une zone répétée qui affiche des informations sur x article, mais il y a également de la saisie (pour chaque article zone de saisie texte, radio bouton...) . Ces articles sont repéré par un id, a l'affichage c'est cet id qui me permet de construire le nom de mon champ pour le récupérer dans mon post :
Code :
- <textarea name="commentaire_{$id_article}" rows="4" cols="30" >{ assign var='texte' value = '$erreur.avis_'|cat:$id_article}{eval var=$texte}</textarea>
|
lorsque l'utilisateur valide les données, coté serveur je vérifie que les saisies sont correcte si c'est ok j'enregistre en base sinon je raffiche la même page avec les données précédemment saisies et c'est cette partie qui me pose problème. je construis le nom de la variable qui contient mon texte et après j'utilise le résultat dans la fonction eval pour afficher le texte proprement dit mais ça ne marche pas :
Code :
- { assign var='texte' value = '$erreur.avis_'|cat:$id_article}
|
-> j'arrive bien a assigner ''$erreur.avis_1" à ma variable smarty $texte pour l'id valant 1
toutes les données sont sotckées dans le tableau associatif de la manière suivante : erreur['avis_1'] = "mon texte que je veux afficher" ou erreur['radio_1']= 'A' (dans ce cas ci j'ai des données pour l'article avec id=1 : un radio et une zone texte)
par contre ici je n'arrive pas a éxectuer le code contenu dans la variable $texte, en fait dans ma zone texte, ca m'affiche : ''$erreur.avis_1" j'ai l'impression que la fonction eval est tout simplement ignorée.
N'étant pas expert smarty, j ne sais pas si je fais une faute dans mon raisonnement ou si ce n'est tout simplement pas possible a réaliser... pourtant l'exemple ici en fin de page : http://smarty.net/manual/fr/language.function.eval.php , me laisse penser que si
Si vous avez un avis sur la question, je suis preneur.