|
Smarty
WARNING: All discussion is moving to https://reddit.com/r/smarty, please go there! This forum will be closing soon. |
|
View previous topic :: View next topic |
Author |
Message |
marcod44 Smarty n00b
Joined: 19 Mar 2009 Posts: 4
|
Posted: Thu Mar 19, 2009 8:16 pm Post subject: problème de passage de paramètre (Tableau) vers javascript |
|
|
Bonjour,
D'abord merci aux contributeurs de ce forum qui m'ont permis déjà de résoudre de nombreuses difficultés.
Mais cette fois, je n'ai rien trouvé qui puisse m'aider. J'espère donc que quelqu'un aura une réponse au problème suivant:
Sur une page, j'affiche une liste d'information classées par catégorie. J'ai un menu de sélection avec chaque catégorie, et ensuite ma liste est organisée par catégorie. J'affiche l'ensemble des éléments d'une catégorie dans un bloc <div class="valeur_categorie">. Pour ce faire j'ai un tableau (créé dans le fichier .php à partir d'une requete mySQL). Dans le template .tpl, j'utilise $liste_categories. Tout fonctionne bien, je peux récupérer chacune des valeurs du tableau pour créer mes blocs dans mon menu de sélection puis dans ma liste.
Mon problème est que je souhaite appeler un script qui affiche/cache les éléments de la liste quand on clique sur la catégorie correspondante dans le menu.
J'ai un lien "All" pour tout afficher créé de la façon suivante
Code: |
<div class="selection">{$afficher}
...
<... onclick="DisplayAllCat('{$liste_categories}');">All</a>
</div>
|
La fonction DisplayAllCat a pour but de modifier les propriétés .style. display. Mais pour l'instant je n'arrive pas à passer le tableau en paramètre. Le code suivant me retourne "A" "r" "r" "a" "y".
Code: |
function DisplayAllCat(lstCat){
for (i=0;i<j;i++){alert(lstCat[i]);}
}
|
J'imagine qu'il s'agit d'un problème lié à la syntaxe dans l'appel de la fonction, mais je ne vois rien nulle part qui puisse m'aider.
Est-ce que quelqu'un a une idée?
Merci |
|
Back to top |
|
Gowser Smarty Pro
Joined: 19 Feb 2008 Posts: 104 Location: Nantes (France)
|
Posted: Thu Sep 10, 2009 2:32 pm Post subject: |
|
|
C'est normal que votre fonction affiche "A" "r" "r" "a" "y" puisque vous faites
Code: |
DisplayAllCat('{$liste_categories}');
|
qui est interprété par smarty comme
Code: |
DisplayAllCat('{php} echo $liste_categories;{/php}');
|
(quand on fait un echo d'un tableau , ca renvoi "Array").
Il faudrait vous faire une petite boucle smarty pour initialiser
un un tableau en JS (afin de ne pas modifier votre fonction js) :
Code: |
<script type="text/javascript">
var menuListe = {};
{section name=indexCategorie loop=$liste_categories}
var menuListe[menuListe.length] = "{$liste_categories[indexCategorie]}";
{/section}
</script>
|
puis modifier l'appel de la fonction :
Code: |
onclick="DisplayAllCat(menuListe);
|
|
|
Back to top |
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|