Blocs ajax et ajaxReload

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});

Auteur JLuc Publié le :