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
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 javascriptLe 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 spipUn 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.netArchives : 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