2009-08-26 6 views
0

Ich versuche, eine Tagcloud für eine Anwendung zu erstellen. Wenn ich auf ein Tag aus der Tagcloud klicke, muss der Hintergrund für das Tag geändert werden. Hier ist ein einfaches HTML-Code für einen tag:Frage über JQuery mit Post und JSON URL-Parameter

<a about="http://localhost/d456c6" href="http://localhost/d456c6" class="tagweight0 Resource">abda</a> 

Um den Hintergrund zu ändern, ich bin mit dem folgenden:

$('tagweight0').livequery('click', function(event) { 
    $(this).toggleClass("select"); 
    return false; 
}); 

die URL whitout Tags ausgewählt wie folgt aussehen:

http://localhost/exploretags/ 

und wenn ich Tags ausgewählt habe, muss es so etwas wie (JSON-Format) sein:

http://localhost/exploretags/?selectedTags={"0" : "uri0", "1" : "uri1" , "2" : "uri2"} 

Ich kann $ .post verwenden, um die Seite zu laden. Mein Problem ist, dass ich keine Ahnung habe, wie man den Wert des selectedTags-Parameters erzeugt. Auf einem Klick auf einen Tag muss ein Element in selectedTag und klicken Sie erneut auf dem gleichen Tag gelöscht, zum Beispiel müssen

  1. Tagloud hinzugefügt werden whitout Tags
  2. Klicken Sie auf Tag „abc“ ausgewählt, die URL Last http://localhost/exploretags/?selectedTags= { "0": "http://localhost/tags/abc "}
  3. Klicken Sie auf Tag "def", ist die uRL zu laden http://localhost/exploretags/?selectedTags= {" 0": "http://localhost/tags/abc", "1": "http://localhost/tags/def"}
  4. Klicken Sie auf Tag "abc". die URL zu laden ist http://localhost/exploretags/?selectedTags= { „0“: „http://localhost/tags/def“}

Meine Idee eine Hilfefunktion zu schreiben war, die alle URIs für Tags mit verändertem Hintergrund erhalten. Aber ich weiß nicht, wie man den Teil zwischen {} für den ausgewählten Tag-Parameter baut.

Kann mir jemand eine Idee geben, wie man das macht? Ist meine Vorgehensweise korrekt?

Regards, Sirakov

PS. Entschuldigung für die lange Post und für das schlechte Englisch

Antwort

0

Als erstes müssen Sie die json, die

und dann für die Verwendung in der URL, wie diese kodieren nur einen JavaScript-Hash erstellen:

encodeURIComponent('{"0" : "uri0", "1" : "uri1" , "2" : "uri2"}') 

Oder, noch besser, per Post mit die $ .post (url, hash, callback) Funktion

+0

Eines meiner Probleme ist, wie man das Teil {"0": "uri0", "1" erstellt: uri1 "," 2 ":" uri2 "}. – cupakob