Select AJAX - Ajuda para editar um formulário
08/05/2015 19:38
....ErrorTente fazar com que a select já ficasse preenchido com a Cidade correspondente mas também sem sucesso. Abaixo segue o código do controller e das GsPs
|
2015-05-08 19:20:24,511 [http-bio-8080-exec-4] ERROR errors.GrailsExceptionResolver - HibernateException occurred when processing request: [POST] /ProjetoAeP/localidade/salvar - parameters:
cidadeid: 39
nome: Neopolis
id: 32
identifier of an instance of projetoaep.Cidade was altered from 1 to 39. Stacktrace follows:
Message: identifier of an instance of projetoaep.Cidade was altered from 1 to 39
Line | Method
package projetoaep
class LocalidadeController {
def index() {
def lista = Localidade.list()
render(view: "/localidade/index", model: [localidades: lista])
}
def alterar(){
Localidade localidade = Localidade.get(params.id)
localidade.nomeLocalidade
//localidade.cidade = Cidade.get()
// println localidade.cidade.nomeCidade + "TESTE#"
render(template: "/localidade/form", model: [localidade:localidade])
}
def excluir()
{
Localidade localidade = Localidade.get(params.id)
localidade.delete(flush: true)
def lista = Localidade.list()
render(view: "/localidade/index", model: [localidades: lista])
}
def adicionar(){
Localidade localidade = new Localidade()
localidade.cidade?.nomeCidade = ""
localidade.nomeLocalidade = ""
render(template: "/localidade/form" , model: [localidade: localidade])
}
def lista(){
def teste = Localidade.list()
render(template: "/localidade/lista", model: [localidades: teste])
}
def salvar(){
Localidade localidade = null
if(params.id)
{
localidade = Localidade.get(params.id)
localidade.cidade.id = params.cidadeid.toInteger()
}
else
{
localidade = new Localidade()
localidade.cidade = new Cidade()
}
localidade.cidade.id = params.cidadeid.toInteger()
localidade.nomeLocalidade = params.nome
localidade.validate()
if(!localidade.hasErrors())
{
localidade.save(flush:true)
render("Salvo com sucesso <br/>")
}
else{
render(localidade.errors)
}
}
}
<%@ page import="projetoaep.Localidade; projetoaep.Cidade" %>_lista
<div id="divMensagem"></div>
<br/>
<g:formRemote name="frmLocalidade" url="[controller: 'localidade', action: 'salvar']" update="divMensagem"
onSuccess="carregarLista()">
Cidade <g:select name="cidadeid" optionKey="id" from="${Cidade.list()}" noSelection="['null':'Selecione uma Cidade']" > </g:select> <br/>
Localizacao <input type="text" name="nome" value="${localidade.nomeLocalidade}"/> <br/>
<input type="submit" name="btnSalvar" value="Salvar"/>
<input type="button" name="btnCancelar" value="Cancelar" onclick="cancelar()"/>
<input type="hidden" name="id" value="${localidade.id}"/>
</g:formRemote>
Obrigado desde já :D
<g:if test="${localidades.size() > 0 }">
<table>
<tr>
<th>Cidade</th>
<th>Localizacao</th>
<th>Acoes</th>
</tr>
<g:each var="localidade" in="${localidades}">
<tr>
<td>${localidade.cidade?.nomeCidade}</td>
<td>${localidade.nomeLocalidade}</td>
<td>
<g:remoteLink controller="localidade" action="alterar" update="divform" id="${localidade.id}"> Alterar </g:remoteLink>
<a href="#" onclick="excluir('${localidade.id}')" >Excluir</a>
</td>
</tr>
</g:each>
</table>
</g:if>
<g:else>
<br>
Nenhuma localidade cadastrada
</g:else>
localidade.cidade.id = params.cidadeid.toInteger()
Para se registrar, clique aqui.