Problemas implementando Ajax
12/05/2010 00:00
0
Olá,

Tentei fazer um exemplo grotesco utilizando esta página como referência(<!-- m --><a class="postlink" href="http://www.grails.org/AJAX-Driven+SELECTs+in+GSP">http://www.grails.org/AJAX-Driven+SELECTs+in+GSP</a><!-- m -->) e não obtive sucesso, alguém pode me ajudar?

Fiz as seguintes alterações:

#############################################################
<g:javascript>

function updateProdReserva(e) {

var produto = eval(&quot;(&quot; + e.responseText + &quot;)&quot;)

if (produto) { var rselect = document.getElementById('produtoReserva')

var l = rselect.length

while (l > 0) { l-- rselect.remove(l) }

for (var i=0; i < produto.length; i++) {
var preserva = produto[i];
var opt = document.createElement('option');
opt.text = preserva.name
opt.value = preserva.id
try {
rselect.add(opt, null)
} catch(ex) {
rselect.add(opt) // IE only
} } } }

var zselect = document.getElementById('produtoReserva');
var zopt = zselect.text = ${remoteFunction(controller:&quot;produto&quot;, action:&quot;ajaxGetProduto(vendaInstance?.vendaprincipal?.id)&quot;, params:&quot;'id=' + zopt.value&quot;, onComplete:&quot;updateProdReserva(e)&quot;)}

</g:javascript>
#############################################################

<g:select name=&quot;venda.id&quot; from=&quot;${Venda.list()}&quot; optionKey=&quot;id&quot; value=&quot;${vendaInstance?.vendaprincipal?.id}&quot; onchange=&quot;${remoteFunction(controller:'venda', action:'ajaxGetProduto(vendaInstance?.vendaprincipal?.id)', params:'\'id=\' + escape(this.value)', onComplete:'updateProdReserva(e)')}&quot;/>


No meu controller Venda eu criei algo assim:

def ajaxGetProduto(id) {
flash.message = &quot;funciona&quot;+id
def venda = Venda.findById(id)
render venda?.vendaPrincipal as JSON
}

E esse é o elemento text q eu tento atualizar via javascript&#058;
<g:textField name=&quot;produtoReserva&quot; value=&quot;&quot; id=&quot;produtoReserva&quot; />

E não acontece nada!!

Alguém sabe como resolver isso? Se tiver muito confuso serve um outro exemplo de sucesso de vocês.

Abraços.
Tags: Grails


0
Acho que eu sei o que e'


(mesmo o post da duvida sendo antigo, alguem pode ter a mesma duvida)

Seguinte, toda vez que eu quero usar ajax na minha app eu tiro o G do select XD
Entende?
Sempre que eu quero usar ajax eu uso html puro e nao os controles do grails. Por que? sei la', talvez o javascript nao consigo encontrar tags com G no meio, ou sei la' a razao.

Entao eu faco um select vazio e populo ele com uma chamada no javascript chamando um action no controller.
E e' isso
27/05/2010 00:00


0
E se for possível tenta utilizar alguma biblioteca javascript como jQuery, que vai facilitar bastante a sua vida.
07/06/2010 00:00


0
Sim sim, usar a biblioteca AJAX simplifica muito a vida. Principalmente de quem não meche muito com js como eu XD

Sobre tirar os Gs dos selects, acontece que as tags com G são processadas no servidor e são cuspidas na página. Em casos como esse é melhor colocar uma tag hltml mesmo e usar uma chamada com ajax no controler que irá existir uma ação que lista o que deverá haver no select, e depois devolver pro html em JSON.
<!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
07/06/2010 00:00



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto