Les pages précédentes ont présenté comment l’appel d’un bloc en ajax permet de recharger ce bloc lors de la validation d’un formulaire ou d’un lien ajax contenu par ce bloc. Mais lorsqu’on veut forcer le rechargement d’un autre bloc, alors ce bloc doit être lui-même inclu avec ajax
, et il faut ensuite utiliser la fonction javascript ajaxReload
.
– Déclarer cet autre bloc ajax dont on veut forcer le rechargement : c’est le rôle de l’argument ajax=autrebloc
lors de son inclusion :
<INCLURE{fond=inclure/monautrebloc,ajax=autrebloc}>
– Appeler ajaxReload
en javascript, quelque part et au bon moment, avec l’argument "autrebloc".
Appel d’ajaxReload
Pour appeler ajaxReload, il y a au moins 2 manières de faire :
1) En incluant le javascript dans le HTML du formulaire ou de la noisette qui l’appelle.
Pour la config du plugin reservation_evenement, on trouve :
$(function() {
$("body").on('submit', '.formulaire_configurer_reservation_evenement form', function(event) {
ajaxReload('configurer_re_menu');
ajaxReload('navigation');
});
});
2) En incluant le javascript dans le message de reponse_ok
du formulaire.
C’est ce qui est fait par exemple dans le plugin-dist medias :
if ($res['message_ok']) {
$res['message_ok'] .= '<script type="text/javascript">if (window.jQuery) ajaxReload("document_infos");</script>';
}
Arguments
Il est possible de passer des arguments à ajaxReload
, sous la forme d’un tableau dont les clés sont :
– args
: un tableau arguments formant le contexte d’évaluation du squelette. Et parmi elles, l’index var_ajax_ancre
indique l’ancre destination du scroll après rechargement.
– history
: true ou false, selon que le rechargement doit apparaître ou non dans l’historique du navigateur.
Exemple :
$("#liste_des_evenements").ajaxReload({args:{var_ajax_ancre:date_debut,debut_liste_evt:""},history:true});