Comment conserver les valeurs d'un form dans un affichage avec pagination ?

Effectivement, il faut passer l’environnement généré par ton form à ton inclure.
Le hic, c’est qu’il faut en plus que ce soit ‹ immédiat ›, or cela n’est faisable qu’avec en plus du javascript.
Je me suis amusée à te trouver la solution que voici
Ta page principale

<BOUCLE_rubriques(RUBRIQUES){id_rubrique}{tout}>
<h1><a href="#URL_RUBRIQUE">#TITRE N°#ID_RUBRIQUE</a></h1>

    <!-- ajax sur le formulaire + id sur le button -->			 
	<div class="ajax">
   
	    <form action="[(#URL_RUBRIQUE|parametre_url{_id_rubrique,#ENV{_id_rubrique}})]" method="post" id="consulter_actus">
		 <BOUCLE_actu_controleur(ARTICLES){0,1}>
			<label for="rub_select">Rubrique</label>
			<select name="_id_rubrique" id="rub_select">
			   <option value="">Sélectionner une rubrique</option>
			   <BOUCLE_selection(RUBRIQUES){profondeur=1}{par titre}>
			   [<option VALUE="[(#ID_RUBRIQUE)]"[(#ENV{_id_rubrique}|=={[(#ID_RUBRIQUE)]}|?{' selected="selected"',''})]>(#TITRE) N°#ID_RUBRIQUE</option>]
			   </BOUCLE_selection>
			</select>
			<button type='submit' class='button small' type='submit' id="bouton_form"><:bouton_filtrer:></button>
		 </BOUCLE_actu_controleur>
		 </form>

	</div>

</BOUCLE_rubriques>
   
   
<INCLURE{fond=modeles/selection_articles,ajax,env, _id_rubrique, debut_page} />

<div>D'autres éléments dans la page</div>

le script qui récupère le choix du formulaire et agit sur la page principale

<script>

    // force l'envoi de _id_rubrique dans l'environnement 
    document.getElementById('bouton_form').addEventListener('click', function() {
        var rubriquechoisie = document.querySelectorAll("#rub_select option:checked");
        var _id_rubrique = rubriquechoisie[0].value;
        window.location.href = '[(#URL_RUBRIQUE)]&_id_rubrique=' + _id_rubrique;
        event.preventDefault();
    });

</script>

Et la page à inclure des articles paginés


Les articles de la rubrique N° [(#ENV{_id_rubrique,#ENV{id_rubrique}})] sont demandés
<B_page>
	#ANCRE_PAGINATION
	<ul>
	<BOUCLE_page(ARTICLES){id_parent = #ENV{_id_rubrique,#ENV{id_rubrique}}}{par id_rubrique, num titre}{pagination}>
	   <li><a href="#URL_ARTICLE">#TITRE</a> - [(#INFO_TITRE{rubrique, #ID_PARENT})] - [(#INFO_TITRE{rubrique, #ID_RUBRIQUE})]</li>
	</BOUCLE_page>
	</ul>
	[<nav role="navigation" class="pagination">(#PAGINATION{perso})</nav>]
</B_page>

J’ai simplifié pour que ce soit plus facilement compréhensible, le formulaire fonctionne sans le js vanilla mais, il faut dans ce cas envoyer le submit une seconde fois pour modifier l’url.

2 « J'aime »