2016-04-04 7 views
0

Ich habe eine URL-Abfrage, die wie folgt aussieht:Javascript/jQuery URL Abfrage Params Parse

view-mode=grid&filters%5Bone%5D%3D1%26filters%5Btwo%5D%3D2

Letztlich möchte ich in der Lage sein, die Parameter sowohl in PHP und Javascripting (mit jQuery) zu analysieren. Kein Problem beim Parsen in PHP mit $ _GET. Versuchen herauszufinden, wie man es mit Javascript macht. Das endgültige Objekt in Javascript sollte wie folgt aussehen:

{ "view-mode" : "grid", "filters" : { "one" : "1", "two" : "2" } }

Irgendwelche Vorschläge? Ich verwende URI.js für einige Gebäude und Parsing bereits.

Dank

+2

Mögliche Duplikate von [Konvertieren URL-Parameter in ein Javascript-Objekt] (http://StackOverflow.com/Questions/8648892/Convert-URL-Parameters-To-A-Javascript-Object) – Ohgodwhy

+0

Ich habe diese Lösung versucht, aber das Ergebnis ist '{filtert [eins]:" 1 ", filtert [zwei]:" 2 "}' – Ward

+0

Woher kommen diese Daten? Generierst du es selbst?Kannst du JSON das Objekt kodieren und weitergeben, anstatt es jetzt zu übergeben? –

Antwort

0

es herausgefunden:

I URL.js die Abfrageparameter mit URI(location.href).query(true)

ich ein Objekt mit ein paar Eigenschaften, darunter "View-Modus gewöhnungs "und" Filter [1] = 1 & Filter [zwei] = 2 "wo" Filter [1] = 1 & Filter [zwei] = 2 "ist ein Objekt (basierend auf der Art, wie URL.js die Abfrage analysiert).

Dann iteriere ich durch das Objekt und überprüfe, ob die Eigenschaft ein Objekt ist. Wenn es ist, verwende ich Ben Alman's BBQ jQuery Plugin die Eigenschaftsnamen zu analysieren, die dann auch:

filters%5Bone%5D%3D1%26filters%5Btwo%5D%3D2

in:

{ "filters" : { "one" : "1", "two" : "2" } }

Das URI.js Parsen Verfahren führt auch in einigen Eigenschaften, die haben kein Wert wie "* filter [one] = 1 & filter [zwei] = 2 1 *" und "* filter [one] = 1 & filter [ zwei] = 2 [] * ". Ich ignoriere diese.

Dann kann ich die ursprünglichen Eigenschaften kombinieren, die nicht Objekte wie „view-mode = Raster“ sind mit den analysierten Eigenschaften, die Objekte, wie zum Beispiel "Filter% 5Bone% 5D% 3D1 sind % 26filters% 5Btwo% 5D% 3D2 "und ich am Ende mit:

{ "view-mode" : "grid", "filters" : { "one" : "1", "two" : "2" } }

End Ergebnis ist, dass sowohl Javascript und PHP die Abfrageparameter lesen und verstehen.