2012-06-14 5 views
6
var search= document.getElementById('appMenu').value 
document.location.href= '${createLink(controller: 'application' , action:'ajaxAppSearch', params: ['query': search])}' 

L'elemento appMenu è un campo di testo, quindi sto ottenendo il valore che l'utente inserisce nella casella di testo per passare a un controller di ricerca. Tuttavia, continua a dirmi che la query params è nullo. Sembra che la ricerca non venga passata nel metodo di creazione del collegamento. Qualcuno ha un suggerimento?Passa la variabile Javascript nel metodo createlink chiamata Grails

risposta

11

Grails (controller, GSP e tag, ecc.) Funzionano sul lato server. JavaScript sul lato client. E questo collegamento viene preparato prima di inviare i dati al browser e prima che JavaScript possa passare la sua variabile nel tag GSP.

Ma si può preparare collegamento di base sul lato server, e aggiungere il parametro supplementare sul lato client, utilizzando javascript, come:

var search= document.getElementById('appMenu').value; 
document.location.href= '${createLink(controller: 'application' , action:'ajaxAppSearch')}?query=' + escape(search); 
+0

impressionante, funziona perfettamente grazie –