Bonjour à tous et à toutes,
(Je vais essayer d'être précis ET concis, ce qui n'est pas évident. Merci de m'en excuser par avance si je n'y parviens pas)
Je travaille sur un portail de bibliothèque avec une barre de recherche (champ + bouton de recherche).
Mon responsable m'a demandé de préfiltrer la recherche sur un critère (en l'occurrence : Type de document : Patrimoine)
Quand on lance une recherche, sans critère, l'URL de la page de résultats de recherche est la suivante :
https://nom-du-portail.fr/opac/catalog/search?allfields[]=
et le code HTML, par défaut, du bouton est le suivant (l'explication du pourquoi je l'indique, viendra plus tard) :
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <button class="btn btn-link btn-search" data-toggle="tooltip" title="" data-placement="bottom" id="fast-search-btn-search" data-original-title="Lancer la recherche"> <i class="far fa fa-search"></i> </button>
Quand j'ajoute le critère demandé, l'URL de la page de résultats de recherche est la suivante :
https://nom-du-portail.fr/opac/catalog/search?allfields[]=&specificField[]=typededocument_dyns%3A"Patrimoine"
Pour obtenir cette URL pour la page de résultats de recherche, j'ai ajouté, bouton de recherche, un attribut via le jQuery suivant :
Code jquery : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $( "#searchbar #fast-search-btn-search.btn-search" ).attr( 'name', 'specificField[]' ); $( "#searchbar #fast-search-btn-search.btn-search" ).attr( 'value', 'typededocument_dyns:"Patrimoine"' );
Résultat, le code HTML du bouton de recherche est le suivant :
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <button class="btn btn-link btn-search" data-toggle="tooltip" title="" data-placement="bottom" id="fast-search-btn-search" data-original-title="Lancer la recherche" name="specificField[]" value="typededocument_dyns:"Patrimoine""> <i class="far fa fa-search"></i> </button>
Jusqu'ici, tout va bien. Grâce à mon script jQuery, j'ajoute un attribut "specificField[]" à mon bouton de recherche => ça modifie l'URL de la page de résultats de recherche ET (surtout) ça préfiltre la recherche sur le critère Type de document : Patrimoine
Là où ça se corse, c'est quand je veux ajouter un second critère de recherche (ex : la Médiathèque Victor Hugo).
L'URL de la page de résultats de recherche est la suivante :
https://nom-du-portail.fr/opac/catalog/search?allfields[0]=&specificField[0]=typededocument_dyns%3A"Patrimoine"&specificField[]=siteStr%3A"Médiathèque+Victor+Hugo"
Pour obtenir cette URL, j'ai donc ajouté les 2 lignes suivantes à mon jQuery :
Code jquery : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $( "#searchbar #fast-search-btn-search.btn-search" ).attr( 'name', 'specificField[]' ); $( "#searchbar #fast-search-btn-search.btn-search" ).attr( 'value', 'siteStr:"Médiathèque+Victor+Hugo"' );
et ainsi avoir non pas un, mais deux attributs "specificField[]" :
- Type de document : Patrimoine
- Site : Médiathèque Victor Hugo
Problème : Peu importe l'ordre des attributs dans le jQuery (Type de document : Patrimoine en premier et Site : Médiathèque Victor Hugo en second, ou l'inverse), le bouton recherche ne conserve QUE le dernier attribut.
En effet, j'ai essayé de modifier le HTML du bouton de recherche et mettre deux attributs "specificField[]", quand je valide la modification, c'est le dernier attribut qui est conservé.
Du coup, je voulais savoir : comment faire pour ajouter plusieurs attributs de même nature à un bouton ?
Merci par avance pour vos réponses
Bonne journée![]()








Répondre avec citation
Partager