-2

Possible Duplicate:
How can I get query string values?

I have the following querystring:

"active_tab=delivered&active_tab=all&active_tab=delivered&active_tab=outstanding
&active_tab=delivered&active_tab=outstanding&active_tab=all&active_tab=delivered&active_tab=outstanding&title_filter=conformance&title_filter=delivering&title_filter=packaging
&title_filter=delivering&title_filter=all&title_filter=delivering&title_filter=all&title_filter=packaging&title_filter=conformance&title_filter=packaging
&title_filter=delivering&title_filter=packaging&title_filter=ordered"

How would I parse the final title_filter ("ordered") and active_tab ("delivered") from the above querystring? Also, if that querystring variable doesn't exist, have it = ""

Community
  • 1
  • 1
David542
  • 104,438
  • 178
  • 489
  • 842

2 Answers2

4
var query = {};

var largeString = "active_tab=delivered&active_tab=all&active_tab=delivered&active_tab=outstanding&active_tab=delivered&active_tab=outstanding&active_tab=all&active_tab=delivered&active_tab=outstanding&title_filter=conformance&title_filter=delivering&title_filter=packaging&title_filter=delivering&title_filter=all&title_filter=delivering&title_filter=all&title_filter=packaging&title_filter=conformance&title_filter=packaging&title_filter=delivering&title_filter=packaging&title_filter=ordered";

largeString.split('&').forEach(function(keyValue){
    var kvp = p.split('=');
    query[kvp[0]]= kvp[1];
});

if you need to support arrays:

largeString.split('&').forEach(function(keyValue){
    var kvp = keyValue.split('=');

    if(kvp[0] in query){
        if(typeof(query[kvp[0]] === 'string')){
            query[kvp[0]] = [query[kvp[0]]];
        }
        query[kvp[0]].push(kvp[1]);
    }else{
        query[kvp[0]] = kvp[1];
    }
});
bevacqua
  • 47,502
  • 56
  • 171
  • 285
0

I modified the querystring to remove duplicates and then I did:

var active_tab = window.location.search.split('active_tab=')[1].split('&')[0]
var title_filter = window.location.search.split('title_filter=')[1].split('&')[0]
David542
  • 104,438
  • 178
  • 489
  • 842