Le 28/09/2021 à 10:06, Florence HENRY via Discuter de SPIP a écrit :
[Florence_HENRY] Florence HENRY https://discuter.spip.net/u/florence_henry
Septembre 28Question connexe : que faudrait-il que je fasse pour que suite au traitement de mon formulaire, mon bloc ajax soit
rechargé, dans une configuration de code ainsi :|[(#INCLURE{fond=inc-batiment,env,ajax=modifier_batiment})] #FORMULAIRE_BATIMENT |
Tel quel, seul le bloc du formulaire est rechargé, pas le bloc ajax |modifier_batiment|
|C’est exactement à ça que servent ajax : à pas tout reloader,
|||et ajaxReload|||: reloader un autre bloc que celui ajaxé.|
|Il faut donc
- déclarer cet autre bloc ajax : c’est le rôle de l’argument ajax=autrebloc dans un INCLURE
- appeler ajaxReload en javascript, quelque part et au bon moment, avec cet argument ‹ autrebloc ›|
|Pour appeler ajaxReload, une recherche sur le source des différents plugins ramène plein d’exemples
et au moins 2 manières de faire :
|
|- en incluant le javascript dans le HTML du formulaire… ou de la noisette qui l’appelle.
Par exemple pour la config du plugin reservation_evenement il y a quelque chose qui y ressemble
dans
prive/squelettes/contenu/configurer_reservation_evenement.html · master · spip-contrib-extensions / reservation_evenement · GitLab
|
$(function() {
$(« body »).on(‹ submit ›, ‹ .formulaire_configurer_reservation_evenement form ›, function(event) {
ajaxReload(‹ configurer_re_menu ›); ajaxReload(‹ navigation ›); }); });
||
|- en incluant le javascript dans le message de reponse_ok de ton formulaire.||
C’est ce qui est fait par exemple dans le plugin-dist medias||
if ($res[‹ message_ok ›]) {
$res[‹ message_ok ›] .= ‹ ›;
}
|||
|JLuc|
J’ai réussi à faire marcher la fonction |ajaxReload| avec l’argument |var_ajax_ancre|, mais cet argument ne semble pas
pris en compte lors de l’inclusion avec |#INCLURE|.J’ai même tenté un |#FORMULAIRE_BATIMENT{var_ajax_ancre=monancre}|, mais sans succès.
[JLuc] JLuc https://discuter.spip.net/u/jluc
Septembre 23As tu vu le commit forcer le scroll pour avoir l’ancre tout en haut de la page · 5108fb09af - agenda - SPIP on GIT
https://git.spip.net/spip-contrib-extensions/agenda/commit/5108fb09afff37379acdc9f2ff42c02421c8c475 ?Il utilise |var_ajax_ancre| en argument de ajaxReload donc tu pourrais essayer d’INCLURE la noisette ajaxée avec cet
argument : |<INCLURE{fond=…,ajax,env,var_ajax_ancre=nomdelancre}>|