Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Anjos1981

[Resolvido] Carregar Select

Recommended Posts

Pessoal to com, um problema.

Tipo na primeira select tem alguns países: Brasil, França, Espanha, etc...

Caso escolher um desses países automaticamente carrega o estado do país escolhido na outra select.

Tipo se escolher o brasil, na outra select aparece, acre, alagoas, ceara, etc..

 

Aí que vem o problema.

 

Tipo não dá erro nenhum, simplesmente não são exibidos os Estados na select, mas ele eh carregado.

vou postar o código abaixo :

 

<html>

<head>

<script language="javascript">

 

function muda_estado(){

 

//tomo o valor do select do pais escolhido

var pais

var estados_1=new Array("-","Andalucía","Asturias","Baleares","Canarias","Castilla y León","Castilla-La Mancha","...")

var estados_2=new Array("-","Rio de Janeiro","Bahia","São Paulo","Santa Catarina","Minas Gerais","Ceara", "Acre","...")

var estados_3=new Array("-","Algarve","Alentejo","Norte","Vale do Tejo","...")

var estados_4=new Array("-","Aisne","Creuse","Dordogne","Essonne","Gironde ","...")

pais = document.f1.pais[document.f1.pais.selectedIndex].value

//vejo se o pais está definido

if (pais != 0) {

//se estava definido, entao coloco as opcoes do estado correspondente.

 

 

//seleciono o array de estado adequado

meus_estados=eval("estados_" + pais)

//calculo o numero de estados

num_estados = meus_estados.length

//marco o número de estados no select

document.f1.estado.length = num_estados

//para cada estado do array, o introduzo no select

for(i=0;i<num_estados;i++){

document.f1.estado.options.value=meus_estados

document.f1.estado.options.text=meus_estados

}

}else{

//se não havia estado selecionado, elimino os estados do select

document.f1.estado.length = 1

//coloco um traço na única opção que deixei

document.f1.estado.options[0].value = "-"

document.f1.estado.options[0].text = "-"

}

//marco como selecionada a opção primeira de estado

document.f1.estado.options[0].selected = true

}

 

 

</script>

</head>

<body>

 

<form name="f1">

<select name=pais onchange="muda_estado()">

<option value="0" selected>Selecione...

<option value="1">Espanha

<option value=2>Brasil

<option value=3>Portugal

<option value=4>França

</select>

 

<select name=estado>

<option value="-">-

</select>

</form>

 

 

</body></html>

 

 

Alguém pode-me ajudar.

Desde já agradeço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tá ae... 100% funcional, pelo menos no Fx...

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
		<title>Untitled Document</title>
		<script type="text/javascript">
			
			function muda_estado(){
			
				//tomo o valor do select do pais escolhido
				var pais
				var estados_1 = new Array("-", "Andalucía", "Asturias", "Baleares", "Canarias", "Castilla y León", "Castilla-La Mancha", "...")
				var estados_2 = new Array("-", "Rio de Janeiro", "Bahia", "São Paulo", "Santa Catarina", "Minas Gerais", "Ceara", "Acre", "...")
				var estados_3 = new Array("-", "Algarve", "Alentejo", "Norte", "Vale do Tejo", "...")
				var estados_4 = new Array("-", "Aisne", "Creuse", "Dordogne", "Essonne", "Gironde ", "...")
				pais = document.f1.pais[document.f1.pais.selectedIndex].value
				//vejo se o pais está definido
				if (pais != 0) {
					//se estava definido, entao coloco as opcoes do estado correspondente.
					
					//seleciono o array de estado adequado
					meus_estados = eval("estados_" + pais)
					//calculo o numero de estados
					num_estados = meus_estados.length
					//para cada estado do array, o introduzo no select
					
					// seleciono o que havia antes na div
					var filhos = document.f1.estado.childNodes;
					//acho a quantidade
					var num_filhos = document.f1.estado.childNodes.length;
					
					//removo todos eles
					for(n = num_filhos-1; n > 0; n--){
						var elemento = filhos[n];
						elemento.parentNode.removeChild(elemento);
					}
					
					//crio as novas opções
					for (i = 0; i < num_estados; i++) {
						
						var opcao = document.createElement("option");
						opcao.setAttribute("value", meus_estados[i]);
						
						var texto = document.createTextNode(meus_estados[i]);
						
						opcao.appendChild(texto);
						
						document.f1.estado.appendChild(opcao);
					}
				}
				else {
					//se não havia estado selecionado, elimino os estados do select
					document.f1.estado.length = 1
					//coloco um traço na única opção que deixei
					document.f1.estado.options[0].value = "-"
					document.f1.estado.options[0].text = "-"
				}
				//marco como selecionada a opção primeira de estado
				document.f1.estado.options[0].selected = true
			}
			
			
		</script>
	</head>
	<body>
		<form name="f1">
			<select name=pais onchange="muda_estado()">
				<option value="0" selected="selected">
				Selecione...<option value="1">Espanha</option>
				<option value=2>Brasil</option>
				<option value=3>Portugal</option>
				<option value=4>França</option>
			</select>
			<select name=estado>
				<option value="-">-</option>
			</select>
		</form>
	</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.