Saisissez les parameters d’URL pour gérer les options de formulaire de recherche à l’aide de jQuery ou javascript

J’ai un ensemble de filtres de recherche qui définissent une chaîne d’URL (pour un traitement ultérieur). Lorsque la page se recharge pour afficher les résultats, les options sélectionnées par l’utilisateur sont perdues. Je me demandais s’il était possible d’utiliser jQuery pour capturer les parameters de l’URL et «se rappeler» quelles options avaient été sélectionnées?

Par exemple, si mon URL contient www.something.com/index.html?&colour=red&circle=1&star=0, mon formulaire se chargera avec les éléments suivants:

Colour

Blue:

Red:

[selected]

Green:

Shape

Circle:

[selected]

Square:

Star:

Merci d’avoir regardé.

  

Vous pouvez utiliser l’object JS suivant

 location.search 

Cela vous donnera les parameters de chaîne de requête de votre barre d’adresse.

Cette information est conservée sur l’object location Location en javascript d’où vous devrez extraire les parameters.

Vous pouvez obtenir le paramètre url en utilisant cette fonction (regardez ici Ajouter urlVariable au lien de la page suivante ):

 function getParameterByName( name ) { name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); var regexS = "[\\?&]"+name+"=([^&#]*)"; var regex = new RegExp( regexS ); var results = regex.exec( window.location.href ); if( results == null ) return ""; else return decodeURIComponent(results[1].replace(/\+/g, " ")); } var colour= getParameterByName('colour'); var circle= getParameterByName('circle'); var star= getParameterByName('star'); 

Lorsque vous avez les parameters, il est facile de les sélectionner:

 $('input[name=colour][value='+colour+']').attr('checked', 'checked'); 

À moins d’une raison particulière, vous devez le faire côté client:

Cela se fait généralement côté serveur . Vous pouvez vérifier les parameters côté serveur (ce que vous ferez probablement de toute façon) et renvoyer le balisage HTML avec les cases à cocher présélectionnées au client.

Sur le plan positif, cela fonctionnera également avec les navigateurs désactivés javascript ainsi que les moteurs de recherche.