Smarty Forum Index Smarty
WARNING: All discussion is moving to https://reddit.com/r/smarty, please go there! This forum will be closing soon.

problème de passage de paramètre (Tableau) vers javascript

 
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    Smarty Forum Index -> Language: French
View previous topic :: View next topic  
Author Message
marcod44
Smarty n00b


Joined: 19 Mar 2009
Posts: 4

PostPosted: Thu Mar 19, 2009 8:16 pm    Post subject: problème de passage de paramètre (Tableau) vers javascript Reply with quote

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
View user's profile Send private message
Gowser
Smarty Pro


Joined: 19 Feb 2008
Posts: 104
Location: Nantes (France)

PostPosted: Thu Sep 10, 2009 2:32 pm    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail
Display posts from previous:   
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    Smarty Forum Index -> Language: French All times are GMT
Page 1 of 1

 
Jump to:  
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
Protected by Anti-Spam ACP