Iniciando no GRAILS, problema com Ajax e formulário
09/08/2012 23:20
0
Pessoal,

Estou iniciando no GRAILS, mas as minhas experiências não estão sendo boas, estou vindo do RAILS, escolhi o GRAILS pq tenho formação em Java e acho melhor a forma de deployment feita com GRAILS sem falar que parece ser bem mais preparado para grandes Aplicações.

Estou criando uma app simples de cadastro, eu tenho um formulário onde eu adiciono uns procedimentos nele via ajax e renderizo apenas a tabela

O botão:
 <button onclick="addProcedimento()">Adicionar</button>


Eu chamo esse javascript:
function addProcedimento(){

dados = "quantidade="+$("#quantidade").val();
dados += "&procedimento_id="+$("#procedimento").val();
enviaAjax("home/addProcedimento", dados);
}


O envia ajax chama o metodo de envia via GET do JQuery, tenho a div com o render:
 <div id="div_procedimentos"> 
<g:render template="/home/procedimentos"/>
</div>



E no meu metodo uso o javascript-converter pra renderizar o meu template:
	render( {
jQuery("#div_procedimentos").html( g.render( template:"/home/procedimentos") )
} as Javascript)


Tudo funciona normalmente como o esperedo, até eu colocar isso dentro de um formulário que faz o envio normal via HTTP POST sem usar AJAX. Quando coloco a TAG:
 <g:form controller="home" method="post" > 


Toda a minha parte AJAX junto com o o render nada funciona o botão parece nem enviar os dados mais pro action addProcedimento. Não entendi mesmo o que acontece, se tirar o form tudo funciona.

Outra coisa que para eu ver se os dados chegam no action eu coloco um System.out.println(params) o console não mostra nada, nenhuma requisição feita, achei isso estranho já que no rails vc ver no console sempre tudo o que esta sendo executado.

Alguém pode me ajudar?
Tags: Ajax, Console, form


0
Fala Brother!

Brother não entendi pq vc quer usar <g:form>, vc pode colocar uma ação num botão que ñ precisa ser encapsulado por um form e executar o ajax passando a url com o controller e action que vc quer executar.
Uma outra coisa que vc pode fazer é usar o <g:submitRemote> dá uma pesquisada nessa tag!

No Groovy/Grails vc ñ precisar usar "System.out" vc usa apenas "println", quando vou trabalhar com java sempre me confundo =D!


0
Valeu Gabriel pela dica....


Eu descobri ontem que o problema é que o meu botão addProcedimento antes de chamar o evento onclick ele da o post pra minha action home\incluir o que é muito estranho já que ele não é um botão de submissão apenas um button simples.

Porque na verdade não quero enviar o formulario todo via AJAX, apenas adiciono os procedimentos e depois envio o form todo normalmente.

Eu tenho esse botão:
	<g:actionSubmit class="save" value="Incluir" />


No fim do form que ai sim esse é o responsável pelo submit.
11/08/2012 11:57


0
<RESOLVIDO>

aqui vai a solução:

Primeiro troquei meu button add procedimento por um link dessa forma ele começou a chamar o onclink normalmente.

Depois tive que usar o createLink no meu metodo javascript, ficou assim:

enviaAjax("${createLinkTo('dir': 'home/addProcedimento')}", dados);


Não sei porque ele mudava a forma da url se tivesse com ou sem o form. mas com o createLink resolveu tudo.

Ate+
11/08/2012 12:09



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