2012-08-14 22 views
5

¿Cómo puedo configurar parámetros adicionales para la consulta comojQuery tokeninput consulta de filtro enviar parámetros adicionales

q=myseed&filter=1,2,34 

mejor será con un evento adjunto como

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

Aquí hay un enlace al plugin - http://loopj.com/jquery-tokeninput/

+1

El autor del plugin simplemente no proporciona esta funcionalidad ... – Lix

+0

@Lix, ahora es posible, los pls ver mi respuesta http://stackoverflow.com/a/31720287/932473 – dav

Respuesta

1

Además de entrar en el código del complemento real y agregar esta función, la única otra manera en que puedo verlo es cambiando e queryParam a algo así como -

filter=1,2,34&q 

De esa manera el filtro simplemente se añade al parámetro de consulta real. Tendría que estar codificado y probablemente tendrías que reiniciar el plugin cada vez que quieras alterar este filtro adicional.

Ejemplo -

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

Gracias por la respuesta. [. Tendría que estar codificado y probablemente tendrías que reiniciar el plugin cada vez que quieras alterar este filtro adicional.] Ese es el problema :( –

+0

Bueno, como dije en mi primer comentario, esto simplemente no es una característica que se proporciona, por lo que tendrá que hackearlo ... – Lix

+1

establecer un valor de cookie podría ayudar ... puede establecer el filtro allí y leerlo en el servidor .... o una variable de sesión a través de AJAX también es una opción ... – Lix

1

otra manera de hacerlo, puede utilizar el URL inicial para lograrlo.

algo como:

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

este será procesado como se esperaba

+0

Esto no funcionará. Se enviará como 'PATH_TO_SCRIPT & filter = 1 , 2,3? Q = term' al servidor – Oktav

+0

Esto realmente funciona, pero no se debe declarar el param de consulta en absoluto, y en lugar de "&" usar "?": '' '$ ("# Selector")tokenInput ("PATH_TO_SCRIPT? filter = 1,2,3", {usted configuración}); '' ' – Thanatos11th

4

Aquí es cómo podría hacerlo, en el siguiente ejemplo que estoy pasando dos parámetro adicional para la url tokenInput.

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

Source

1

sé que la pregunta es bastante antiguo pero que tenía el mismo problema y ha encontrado una respuesta.

Al observar la fuente, el parámetro url puede ser una función evacuada antes de enviar la consulta ajax. Por lo que puede hacer:

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

Sin embargo, la url se almacena en caché. Solo funciona la primera vez. – darethas

2

Esto es posible gracias a la funcionalidad nativa del plugin (por lo menos con la versión actual), es simplemente no está escrito en la documentación: hay onSend callback en el código. Aquí es simple ejemplo

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