Estou tentando montar 2 combo boxs, para 1 ser carregada pela outra, ou seja vou selecionar uma informação de uma combo de “UF(Estado)” e carregar numa outra combo as informações das respectivas “Cidades”.
Tentei fazer isso pelo próprio Struts, mas infelizmente não consegui.
Me deram a opção de fazer por ajax, pois é bem mais simples e rápido.
Andei pesquisando, pois não conheço nada do assunto, achei um site que me dá um passo a passo de como usar o ajax com DHTML, mas só que ele usa o PHP, isso me confundiu um pouco, resumindo não estou conseguindo implementar o q quero fazer.
Vcs por algum acaso tem algum exemplo semelhante a esse q expliquei acima?!
Tu tem uma function que executa o ajax… e dentro dessa function tem uma outra function que trata o retorno do servidor…
Se fala muito em usar xml com ajax…
Mas usando o struts na verdade tu não precisa tratar xml porque o que retorna do teu servidor na real é um texto html já renderizado pelo struts… na real tu teria que pegar esse retorno(um trecho de jsp contendo uma combo box) e colar ela numa div da página jsp que contém a primeira combo que foi selecionada…
<html>
<head>
<script language = "javascript">
function vai(obj)
{
var i = obj.selectedIndex;
var opcao = obj.options[i].value;
// ai você cria uma outra function que retorna um array de dados (de uma xml por exemplo)
//faz um for e popula o outro combo...
document.getElementById('combo2').options[0]=new Option("APRENDA JAVA");
}
</script>
</head>
<body>
<form id="form">
<select name="combo1" size="1" onChange="vai(this)">
<option value="#">Escolha um
<option value="guj1">Forum
<option value="guj2">Tutoriais
</select>
<select name="combo2" size="1" >
</select>
</form>
</body>
</html>
é isso ai… um exemplinho bestinha so para vc tirar um base
To meio sem tempo aqui para criar um js para isso mas na net achei isso:
function conectaXML(arquivo:Number):Array {
var xml:XML = new XML();
var matmes:Array = new Array();
xml.ignoreWhite = true;
xml.onLoad = function(sucesso) {
if (sucesso) {
for (var i :Number = 0; i < xml.firstChild.childNodes.length; i++ ) {
matmes[i] = xml.firstChild.childNodes[i].attributes.numero;
trace(matmes[i]); //aqui mostra direitinho os dias... mais ainda nao consigo receber nada desta funcao ....
}
} else {
trace("Ocorreu um erro ao carregar");
}
};
xml.load(arquivo+".xml");
return matmes;
}
var teste : Array = conectaXML(1);
trace(teste.length);
As minhas informações vem de 2 tabelas chamadas de “UF” e “Cidade”.
Para as informações vindas dessas tabelas criei um DAO com uma lista.
Coloquei esssa minha lista numa Action.
A minha pergunta é a seguinte, tenho q criar algum arquivo xml tambem?!