views:

5929

answers:

6

The examples I've seen online seem much more complex than I expected (manually parsing &/?/= into pairs, using regular expressions, etc). We're using asp.net ajax (don't see anything in their client side reference) and would consider adding jQuery if it would really help.

I would think there is a more elegant solution out there - so far this is the best code I've found but I would love to find something more along the lines of the HttpRequest.QueryString object (asp.net server side). Thanks in advance,

Shane

+8  A: 

There is indeed a QueryString plugin for jQuery, if you're willing to install the jQuery core and the plugin it could prove useful.

Adam Bellaire
After a bit of work we're slowly porting our asp.net apps to jquery. The library has really impressed us and soon to be distributed by Microsoft so if you are facing similar JS issues/questions I recommend checking out jQuery
jskunkle
Over a year later - we've jumped into jquery with both feet and we highly recommend it for parsing the querystring or just about any client side task
jskunkle
+3  A: 

Take a look at my post, as it tells you exactly how to do this:

http://seattlesoftware.wordpress.com/2008/01/16/javascript-query-string/

Chris
+1 because it doesn't use any 3rd party librariers, sometimes you just can't import them (e.g. when working on a widget/gadget).
Pawel Krakowiak
+10  A: 

A quick search found this plugin for jQuery that allows you to access query string params. It is used like this to get values from the query string:

$.query.get('id');

or like this to create a new query string, and it is chainable:

var newUrl = $.query.set("section", 5).set("action", "do").toString();

I don't think there is anything built into Javascript.

Dan Herbert
+1  A: 
A: 

For jQuery I suggest jQuery BBQ: Back Button & Query Library By "Cowboy" Ben Alman

jQuery BBQ leverages the HTML5 hashchange event to allow simple, yet powerful bookmarkable #hash history. In addition, jQuery BBQ provides a full .deparam() method, along with both hash state management, and fragment / query string parse and merge utility methods.

Example:

// Parse URL, deserializing query string into an object.
// http://www.example.com/foo.php?a=1&b=2&c=hello#test
// search is set to ?a=1&b=2&c=hello
// myObj is set to { a:"1", b:"2", c:"hello" }
var search = window.location.search;
var myObj = $.deparam.querystring( search );
Chris Jacob
A: 

I am using this function in case i don't want to use a plugin:

function getQueryVariable(variable) {
    var query = window.location.search.substring(1);
    var vars = query.split("&");
    for (var i = 0; i < vars.length; i++) {
        var pair = vars[i].split("=");
        if (pair[0] == variable) {
            return pair[1];
        }
    }
    return null;
}
Amr ElGarhy