2012-08-14 3 views
5

Wie kann ich zusätzliche Parameter für die Abfrage wiejquery tokeninput Filterabfrage zusätzliche Parameter senden

q=myseed&filter=1,2,34 

besser eingestellt werden wie

onFocus:function(){ 
    //retrieve extra params 
} 

hier mit einem beigefügten Veranstaltung ist ein Link zu dem Plugin - http://loopj.com/jquery-tokeninput/

+1

Der Autor des Plugins einfach nicht diese Funktionalität zu bieten hat ... – Lix

+0

@Lix, jetzt ist es möglich, pls sehen meine Antwort http://stackoverflow.com/a/31720287/932473 – dav

Antwort

1

Abgesehen davon, in den eigentlichen Plugin-Code und das Hinzufügen dieser Funktion die einzige andere Möglichkeit sehe ich dies tun, indem Sie th e queryParam zu so etwas wie -

filter=1,2,34&q 

Auf diese Weise Ihren Filter einfach auf die tatsächlichen Abfrageparameter angehängt wird. Es müsste hart codiert werden und Sie müssen das Plugin wahrscheinlich jedes Mal neu initialisieren, wenn Sie diesen zusätzlichen Filter ändern möchten.

Beispiel -

$("#selector").tokenInput("PATH_TO_SCRIPT", { 
    queryParam: "filter=1,2,34&q" 
}); 
+0

Danke für die Antwort. [. Es müsste hart codiert werden und du musst das Plugin wahrscheinlich jedes Mal neu initialisieren, wenn du diesen zusätzlichen Filter ändern willst.] Das ist das Problem :( –

+0

Gut wie ich in meinem ersten Kommentar gesagt habe, ist das einfach kein Feature wird zur Verfügung gestellt, also müssen Sie es hacken. – Lix

+1

das Setzen eines Plätzchenwerts könnte helfen ... Sie können den Filter dort einstellen und es serverseite lesen .... oder eine Sitzungsvariable über AJAX ist auch eine Wahl. – Lix

1

anderer Weg, es zu tun, können Sie anfängliche URL verwenden, um dies zu erreichen.

so etwas wie:

$("#selector").tokenInput("PATH_TO_SCRIPT&filter=1,2,3", { 
    queryParam: "q" 
}); 

wird dieser als

+0

Dies funktioniert nicht, es wird als 'PATH_TO_SCRIPT & filter = 1 gesendet , 2,3? Q = term 'zum Server – Oktav

+0

Das funktioniert tatsächlich, aber Sie müssen den Abfrageparameter überhaupt nicht deklarieren und statt "&" verwenden Sie "?":' '' $ ("# Selector").tokenInput ("PATH_TO_SCRIPT? filter = 1,2,3", {Ihre Einstellungen}); '' ' – Thanatos11th

4

Hier erwartet verarbeitet werden, wie Sie es tun könnte, im Beispiel unten Ich bin vorbei zwei zusätzliche param auf die URL tokenInput.

this.$("#abcTextbox").tokenInput("url?someParam1=cricket&someParam2=yasser", { 
    queryParam: "q" 
}); 

Source

1

weiß, dass ich diese Frage ist ziemlich alt, aber ich hatte das gleiche Problem und eine Antwort gefunden.

Mit Blick auf die Quelle kann der URL-Parameter eine Funktion sein, die vor dem Senden der Ajax-Abfrage ausgewertet wird. So können Sie tun:

this.$("#abcTextbox").tokenInput(function(){ 
    return "/path/to/script.php?filter="+$("#myFieldId").val() 
}, { 
    queryParam: "q" 
... 
}); 
+0

Die URL wird jedoch zwischengespeichert. Funktioniert nur beim ersten Mal. – darethas

2

Dies ist möglich durch den native Funktionalität des Plugins (zumindest mit der aktuellen Version), ist er gerade nicht in der Dokumentation geschrieben: Es onSend callback im Code ist. Hier einfaches Beispiel ist

$(".my-input").tokenInput('autocomplete.php', { 
    hintText: false, 
    onSend: function(param1) { 
     // console.log($(this)); 
     // console.log(param1); 
     param1.data.my_key = 'my_value'; 
    } 
}); 
Verwandte Themen