[Résolu]Question sous Smarty

Eléphanteau du PHP | 19 Messages

20 déc. 2007, 12:46

Bonjour,

Je poursuit mon apprentissage de Smarty, je souhaite donc utilisé un menu (Transmenu), je doit initialisé le menu dans le fichier .tpl mais voila j'au soucis avec le javascript.

Je passe d'abord les champs de mon menu depuis la base de donnée : array_push($aRecordMenu, $aRowMenu);

Et ensuite sous le fichier template :

Code : Tout sélectionner

{literal} <script type="text/javascript" charset="utf-8"> function init() { //========================================================================================== // if supported, initialize TransMenus //========================================================================================== // Check isSupported() so that menus aren't accidentally sent to non-supporting browsers. // This is better than server-side checking because it will also catch browsers which would // normally support the menus but have javascript disabled. // // If supported, call initialize() and then hook whatever image rollover code you need to do // to the .onactivate and .ondeactivate events for each menu. //========================================================================================== if (TransMenu.isSupported()) { TransMenu.initialize(); {/literal} {section name=idx loop=$smarty_table_mysql} menu{$smarty_table_mysql[idx].id}.onactivate = function() { document.getElementById("{$smarty_table_mysql[idx].name|lower}").className = "hover"; }; menu{$smarty_table_mysql[idx].id}.ondeactivate = function() { document.getElementById("{$smarty_table_mysql[idx].name|lower}").className = ""; }; {/section} {literal} } } </script> {/literal}
Le hic viens de mes deux lignes avec document.getElementById qui génère une erreur :


Fatal error: Smarty error: [in header.tpl line 107]: syntax error: unrecognized tag: document.getElementById("{$smarty_table_mysql[idx].name|lower (Smarty_Compiler.class.php, line 446) in /home/..../libs/Smarty.class.php on line 1095

Je cherche donc une solution mais sans succès pour l'instant.

Merci
Modifié en dernier par PseT le 28 déc. 2007, 16:22, modifié 1 fois.

Eléphant du PHP | 73 Messages

20 déc. 2007, 14:39

Le problème vient de l'interpréteur de Smarty qui lorsq'il détecte une accolade croit avoir affaire à une commande smarty.

Regarde du côté de la commande smarty {literal} qui est employée pour signifier à l'interpréteur qu'il ne doit pas interpréter ce qu'il y a entre les 2 balises smarty.

@+
Image Un bon maître a ce souci constant : enseigner à se passer de lui.

Invité
Invité n'ayant pas de compte PHPfrance

20 déc. 2007, 15:11

Oui c'ets cela merci, j'ai trouvé une solution.

9a reste chaud le passage a Smarty :)