variable spip et javascript

bonjour,

1- est-il possible, au chargement, d’initialiser un tableau javascript par un tableau spip #GET{mon_tableau} ?

si oui comment ?

2- si non est-il possible d’initialiser ce tableau javascript par une BOUCLE spip

merci

Le 04/05/2021 à 18:46, jo.baloo a écrit :

1- est-il possible, au chargement, d'initialiser un tableau javascript par un tableau spip #GET{mon_tableau} ?
si oui comment ?
2- si non est-il possible d'initialiser ce tableau javascript par une BOUCLE spip

Un code source javascript est un texte
que SPIP peut altérer ou entièrement générer
tout comme html (ou json, ou xml, ou yaml, ou css).

Par exemple dans un squelette html où tu as besoin de ce tableau js,
avec le code :

<script type="text/javascript">
var lesPoints = ;

<BOUCLE_remplitableaujs(ARTICLES){inverse}{recherche ?}{id_rubrique?}>
  lesPoints.push({
    'id_article': #ID_ARTICLE,
    'titre': '#TITRE'
  });
</BOUCLE_remplitableaujs>

console.log(lesPoints);

</script>

Et si tu as déjà ton tableau SPIP, tu peux créer une fonction qui génère le source js
et ensuite faire simplement :
<script type="text/javascript">
lesPoints = [(#GET{mon_tableau}|array_to_js)];
</script>

JL

merci pour la réponse.

La boucle fonctionne bien et je récupère mon tableau mais par contre

je suppose que tu voulais dire que je pouvais aussi creer un filtre array_to_js qui n’existe pas.

Message du 04/05/21 20:31
De : « JLuc » jluc@no-log.org
A : spip@rezo.net
Copie à :
Objet : Re: [Spip] variable spip et javascript

Le 04/05/2021 à 18:46, jo.baloo a écrit :

1- est-il possible, au chargement, d’initialiser un tableau javascript par un tableau spip #GET{mon_tableau} ?
si oui comment ?
2- si non est-il possible d’initialiser ce tableau javascript par une BOUCLE spip

Un code source javascript est un texte
que SPIP peut altérer ou entièrement générer
tout comme html (ou json, ou xml, ou yaml, ou css).

Par exemple dans un squelette html où tu as besoin de ce tableau js,
avec le code :

Et si tu as déjà ton tableau SPIP, tu peux créer une fonction qui génère le source js
et ensuite faire simplement :

JL


liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Archives : https://www.mail-archive.com/spip@rezo.net/maillist.html

Infos : https://listes.rezo.net/mailman/listinfo/spip

Documentation de SPIP : http://www.spip.net/

Irc : de l’aide à toute heure : http://spip.net/irc

Le 04/05/2021 à 23:15, jo.baloo a écrit :

merci pour la réponse.

La boucle fonctionne bien et je récupère mon tableau mais par contre

je suppose que tu voulais dire que je pouvais aussi creer un filtre array_to_js
qui n'existe pas.

La fonction `json_encode` de php peut souvent aider :

#SET{tableau_spip,#LISTE{pomme,poire,banane}}
#SET{tableau_asso_spip,#ARRAY{nom,pomme,couleur,jaune,poids,200}}

<script>
    var array_js = [(#GET{tableau_spip}|json_encode)];
    var objet_js = [(#GET{tableau_asso_spip}|json_encode{32})];
</script>

La doc de la fonction : PHP: json_encode - Manual

Pour `objet_js`, un paramètre supplémentaire est fourni à la fonction, pour que la valeur soit encodée comme un nombre et non une chaine de texte si elle correspond à une valeur numérique. Le paramètre (32) correspond à la valeur du drapeau `JSON_NUMERIC_CHECK` : PHP: Constantes pré-définies - Manual

Victor

Le 04/05/2021 à 23:15, jo.baloo a écrit :

merci pour la réponse.
La boucle fonctionne bien et je récupère mon tableau mais par contre
je suppose que tu voulais dire que je pouvais aussi creer un filtre array_to_js qui n'existe pas.

En effet, puisqu'elle n'existe pas il faut la créer avant de l'utiliser.

JL