Estou com uma duvida, preciso atualizar os dados de uma jsp em uma div (Estou usando jquery), ou seja, na mesma pagina (Principal) eu carrego dados de outra pagina/arquivo, mais ou menos assim.
Clico em um item por exemplo celular e faco um select no DB etc e carrego todos os telefones celulares disponiveis no banco logo abaixo do menu celular (Como uma arvore).
Eu to fazendo assim, (Codigos abaixo), mas me abre sempre uma pagina nova. Eu preciso que atualize os itens na minha div definida (div id="codSector").
Codigo JavaScript:
Novamente, se vc tiver mais de um div com ID que comeca com codSector vc vai ter problema. Mas se vc tiver apenas 1, acho que isso resolve o seu problema
//Daniel
E
Edvaldo_Melo
So tenho um div com essa identificacao codSector. Fiz como vc falou, mas continua carregando uma nova pagina. Caracas… ta dificil.
J
jaboot
Por favor, posta aqui o código HTML do browser mesmo. Gostaria de ver como ficou depois de renderizado na tela.
Tem como?! Não todo, mas pelo menos o(s) div(s).
Valeu!
E
Edvaldo_Melo
Segue um pedaco do que ta sendo gerado:
Vlw.
<scripttype="text/javascript"src="../include/javascript/jquery-1.7.1.js">functiong(id){returndocument.getElementById(id);}functionh(id){varel=g(id);if(el.style.display=='none')el.style.display='block';elseel.style.display='none';}$(document).ready(function(){$(".codSector").click(function(){$("#codSector"+$(this).attr("codSector")).load($(this).attr("href"));returnfalse;});});</script></head><body><formmethod="post"action="ExclusionElem.jsp"><h1>Intranet...i</h1><span>texto...</span><br/><br/><h1onClick='h("de0")'>HiTech</h1><divid='de0'><h2onClick='h("des7848")'>Audio</h2><divid='des7848'><!--<divid="codSector8264"><inputtype="button"idsect="8264"class="bottonesettore"href="ExclusionElemBySector.jsp?codSector=8264&cdJob=405560"value="MP3 Portatili"/></div>--><divid="codSector8264"><h3><aclass="codSector="8264href="ExclusionElemBySector.jsp?codSector=8264&cdJob=405560">MP3Portatili</a></h3></div></div></div><!--<divid="codSector8267"><inputtype="button"idsect="8267"class="bottonesettore"href="ExclusionElemBySector.jsp?codSector=8267&cdJob=405560"value="Accessori Audio"/></div>--><divid="codSector8267"><h3><aclass="codSector="8267href="ExclusionElemBySector.jsp?codSector=8267&cdJob=405560">AccessoriAudio</a></h3></div></div></div><!--<divid="codSector8689"><inputtype="button"idsect="8689"class="bottonesettore"href="ExclusionElemBySector.jsp?codSector=8689&cdJob=405560"value="Hi Fi"/></div>--><divid="codSector8689"><h3><aclass="codSector="8689href="ExclusionElemBySector.jsp?codSector=8689&cdJob=405560">HiFi</a></h3></div></div></div><!--<divid="codSector8690"><inputtype="button"idsect="8690"class="bottonesettore"href="ExclusionElemBySector.jsp?codSector=8690&cdJob=405560"value="Radiosveglie"/></div>--><divid="codSector8690"><h3><aclass="codSector="8690href="ExclusionElemBySector.jsp?codSector=8690&cdJob=405560">Radiosveglie</a></h3></div></div></div><!--<divid="codSector8871"><inputtype="button"idsect="8871"class="bottonesettore"href="ExclusionElemBySector.jsp?codSector=8871&cdJob=405560"value="Piatti e Mixer"/></div>--><divid="codSector8871"><h3><aclass="codSector="8871href="ExclusionElemBySector.jsp?codSector=8871&cdJob=405560">PiattieMixer</a></h3></div></div></div><h2onClick='h("des7840")'>Climatizzazione</h2><divid='des7840'><!--<divid="codSector8222"><inputtype="button"idsect="8222"class="bottonesettore"href="ExclusionElemBySector.jsp?codSector=8222&cdJob=405560"value="Condizionatori Fissi"/></div>--><divid="codSector8222"><h3><aclass="codSector="8222href="ExclusionElemBySector.jsp?codSector=8222&cdJob=405560">CondizionatoriFissi</a></h3></div></div></div><!--<divid="codSector8223"><inputtype="button"idsect="8223"class="bottonesettore"href="ExclusionElemBySector.jsp?codSector=8223&cdJob=405560"value="Condizionatori Portatili "/></div>--><divid="codSector8223"><h3><aclass="codSector="8223href="ExclusionElemBySector.jsp?codSector=8223&cdJob=405560">CondizionatoriPortatili</a></h3></div></div></div>
J
jaboot
Muda o seu anchor ( ) pra qualquer outra coisa. Tenta isso.
P
pdpbom
Cara axo que teu problema ta no link
teu link ta com href isso fará ele ser direcionado…
tira o href … e testa com url do file e com id do div fixo …
Agora que eu reparei. No seu $("a").click(function() {
var file = $("#codSector"+$(this).attr("idsect")).load($(this).attr("url_page"));
$.ajax({
url:file,eu acho que não pode ser o file a sua url. A sua URL é aquela que está no href do seu anchor.
E
Edvaldo_Melo
nada, nao funciona mesmo assim.
P
pdpbom
cara segue um exemplinho de como pode ser feito soh q pra facilitar aqui usei um hide e show …
Vlw pdpbom. Mas para a minha situacao ainda nao funcionou. Mudei a linha e to tentando dessa forma, carrega normalmente os dados, mas sempre em outra page, nao atualiza nunca a div.
Ola pdpbom. te agradeco muito pela forca. Vou testar na segunda feira. talvez resolva. Vou dar uma estudada tambem.
Vc consegue me dizer como posso montar a url via js, como faco para pegar o codSector ? via request.getParameter ?
Vlw, bom fim de semana.
P
pdpbom
cara segue como fica … pode ter varios links mas apenas 1 div de destino
fiz um teste ake com 2 arquivos um q seria o teu jsp e outro q seria a pagina de consulta
salva os 2 em uma pasta e faz o teste pra ver …
os codigos html em comentarios () seria o codigo java dele
seria o teu JSP (salvar como index.html)
<!DOCTYPE html><html><head><metahttp-equiv="Content-Type"content="text/html; charset=iso-8859-1"/><scriptsrc="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script><styletype="text/css">body{padding-top:60px;}</style><scripttype="text/javascript">$(function(){/* MONTANDO A URL partindo principio que a url que eu kero acessar é: ** troquei a extensão pra testar aqui ExclusionElemBySector.html?cdJob=405560&codSector=8267" ExclusionElemBySector.html? => caminho do arquivo codSector=8267&cdJob=405560 => parametros codSector=8267 => varia de link pra link, vira do ir do link cdJob=405560 => fixo */varurl="ExclusionElemBySector.html";$('.codSector').each(function(){$(this).click(function(){varid=$(this).attr('id');varcdJob=$('#cdJob').val();$.ajax({url:url,type:"GET",dataType:"html",data:{"codSector":id,"cdJob":cdJob},success:function(data){$('.result').html(data);}})})});});</script></head><body><formclass="form-horizontal"id="autocompleteForm"name="autocompleteForm"action=""method="post"><div><h3><!-- em comentario os codigos como ficariam em java --><!-- <input type="hidden" id="cdJob" value="<%=request.getParameter("cdJob")%>"/> --><inputtype="hidden"id="cdJob"value="405560"/><!-- <a class="codSector" id="<%=cd_sottosect%>"><%=subsect.getDescription()%></a> --><aclass="codSector"id="1">MP1</a></h3></div><divclass="result"id="result"></div><!-- destino --></form></body></html>
seria a pagina de consulta saltar como “ExclusionElemBySector.html” para testar
<!DOCTYPE html><html>
aaa
</html>
E
Edvaldo_Melo
Ola pdpbom e todos que deram uma forca.
pdpbom, funcionou. A atualizacao da div/a carga dos dados.
So que agora ta acontecendo o seguinte.
Por exemplo, eu tenho os itens:
TELEFONE
CARROS
Quando clico em telefone, carrega os subitens de telefone tambem para os carros e seus subitens, ou seja, ta repetindos tudo dentro de todos os subitens de telefono, itens carros e seus subitens.
Agradeco a ajuda.
Abs,
P
pdpbom
Edvaldo_Melo:
Ola pdpbom e todos que deram uma forca.
pdpbom, funcionou. A atualizacao da div/a carga dos dados.
So que agora ta acontecendo o seguinte.
Por exemplo, eu tenho os itens:
TELEFONE
CARROS
Quando clico em telefone, carrega os subitens de telefone tambem para os carros e seus subitens, ou seja, ta repetindos tudo dentro de todos os subitens de telefono, itens carros e seus subitens.
Agradeco a ajuda.
Abs,
Não entendi muito bem …
Tipo quando clicar em telefone ele atualiza um div especifico tipo resultTelefones, quando clica em carros ResultCaros ??
ou quando clica telefone ele atualiza um div result com os dados de telefone e quando clica em carros o div result fica com o resultado de carros ??
E
Edvaldo_Melo
pdpbom,
Nesse trecho de codigo abaixo, vem relacionado do banco varios itens (como exemplo telefone, carro etc), se clico em telefone expandi abaixo de telefone e relaciona tudo relativo a telefone. ta fazendo isso, mas ao mesmo tempo da repetindo tudo em baixo de carro (itens e subitens) tudor repetido.
se tiver como mostrar algo + perto da realidade eu consigo ajudar
ou cola uma parte do html gerado identificando oq eh o carro e oq eh o telefone
E
Edvaldo_Melo
Nesse seu exemplo, otimo, quando clico em telefone, me relaciona abaixo de telefone os suitens relativos a telefones, e nao deve repetir nos outros itens (carro etc). Ta fazendo tudo certo, mas ta repetindo abaixo dos outros itens que nao tem nada haver.
observe que mudamos o destino para algo especifico usando o id
$('.result_'+id).html(data);
E
Edvaldo_Melo
pdpbom, quando clico em MP3 que e um iten de Audio, todos os itens relativos a mp3 sao relacionados, mas como eu te falei antes, repeti tambem em todos os outros intes que nao tem nada haver (Hi Fi - Climatizacao)
Hi Tech
- Audio
MP3 Portatil
Accessorios Audio
Hi Fi
- Climatizacao
Eu fiz passando o id no result, mas nao funcionou. Essa parte da aplicacao ta funcionando bem com jquery (atualizando a DIV), o problema e que ta funcionando bem demais, ou seja, o exemplo que eu te dei dos telefones, quando clico em algum item, carrega seus subitens mas aparece isso repetido para todos os itens da raiz da arvore. (NO EXEMPLO baixo eu cliquei em celular, me traz SAMSUN, mas repetido para todos, deve atualizar so abaixo de celular). To perdendo os cabelos.
Agradeco a ajuda.
Abs
-TELEFONE
CELULAR
** SAMSUNG
FIXO
** SAMSUNG
-CARRO
** SAMSUNG
P
pdpbom
cara varias observações:
soh pode haver um objeto com o id expecifico.
não é necessario repetir o campo hidden visto q ele tera o msm valor em todos os lugares
aprender a diferença entre $(’.result’) e $(’#result’)
. = identificador por classe
identificador por id
se vc colocar no codigo
$('.result').html()
ele vai alterar em todos os q tiverem class=“result”
no codigo abaixo não testei mas acredito que esta certo fiz as alterações e peguei uma parte do teu codigo para criar o meu exemplo
<!DOCTYPE html><html><head><metahttp-equiv="Content-Type"content="text/html; charset=iso-8859-1"/><scriptsrc="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script><styletype="text/css">body{padding-top:60px;}</style><scripttype="text/javascript">$(function(){/* MONTANDO A URL partindo principio que a url que eu kero acessar é: ** troquei a extensão pra testar aqui ExclusionElemBySector.html?cdJob=405560&codSector=8267" ExclusionElemBySector.html? => caminho do arquivo codSector=8267&cdJob=405560 => parametros codSector=8267 => varia de link pra link, vira do ir do link cdJob=405560 => fixo */varurl="ExclusionElemBySector.html";$('.codSector').each(function(){$(this).click(function(){varid=$(this).attr('id');varcdJob=$('#cdJob').val();$.ajax({url:url,type:"GET",dataType:"html",data:{"codSector":id,"cdJob":cdJob},success:function(data){/* id que ele vai alterar */$('#result_'+id).html(data);}})})});});</script></head><body><formclass="form-horizontal"id="autocompleteForm"name="autocompleteForm"action=""method="post"><!-- <input type="hidden" id="cdJob" value="<%=request.getParameter("cdJob")%>"/> --><inputtype="hidden"id="cdJob"value="405560"/><div><h3><!-- <a class="codSector" id="<%=cd_sottosect%>"><%=subsect.getDescription()%></a> --><aclass="codSector"id="8264">MP3 Portatil</a></h3><!--<div class="result_<%=cd_sottosect%>"> </div>--><divid="result_8264"></div></div><div><h3><!-- <a class="codSector" id="<%=cd_sottosect%>"><%=subsect.getDescription()%></a> --><aclass="codSector"id="8267">Accessorios Audio</a></h3><!--<div class="result_<%=cd_sottosect%>"> </div>--><divid="result_8267"></div></div></form></body></html>
testa ae
ele vai alterar em todos os q tiverem class=“result”
repare que alterei de
pdpbom,
Te agradeco muitissimo pela ajuda. Realmente voce foi muito gentil. Fiz uns testes aqui e funcionou. Vou ajustar na quarta e depois posto aqui/fecho o topico. Em relacao a seletores de jquery, to dando uma estudada, muito bacana essa library.
Mais uma vez muito obrigado a voce e todos do GUJ.
Bom feriado e abs.
E
Edvaldo_Melo
Muito obrigado pdpbom e todos do forum.
pdpbom,
Valeu muitissimo pela grande ajuda.
Precisando, tamos ae.
Abs e boa sorte.
E
Edvaldo_Melo
pdpbom,
So mais uma pergunta, para mim fazer ao contrario, ou seja, quando o usuario clicar no item/link uma segunda vez,
para que eu possa ocultar o conteudo/suitens daquela DIV(ja exibir agora quero ocultar), tem um method do ajax, como posso implementar?
Vlw