Ir para conteúdo

POWERED BY:

Arquivado

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

fred silva

[Resolvido] Consulta baseada em um <select><option&#

Recommended Posts

Olá pessoal,

tenho um <select><option> com todos os estados brasileiros, logo abaixo tenho um outro para as cidades.

Gostaria de ao selecionar o estado, o <select> das cidades fosse preenchido com as cidades baseadas no estado selecionado.

No banco tá tudo ok, mas eu não sei bem como fazer isso na página PHP.

Alguém pode me ajudar?

Agradeço a ajuda!

T+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal,

andei analisando o script do William e pesquisando mais alguns que encontrei na net...

Cheguei ao seguite em jquery:

index.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Estados e Cidades</title>
<script type="text/javascript" src="js/jquery-1.6.1.min.js"></script>
<script type="text/javascript" language="javascript">
$(document).ready(function(){
	$("select[name=estado]").change(function(){
		$("select[name=cidade]").html('<option value="0">Carregando...</option>');	

		$.post("cidades.php",
			{estado:$(this).val()},
			function(valor){
				$("select[name=cidade]").html(valor);		
			}
			)
	})
})

</script>
</head>
<body>
<form  method="post" action="">
Estado<br/>
<select name="estado">   
   <option value="0">Selecione um Estado</option> 	
       <?php 
		mysql_connect("localhost","root","");
		mysql_select_db("banco");

		$sql = "SELECT * FROM estado ORDER BY est_nome ASC";
		$query = mysql_query($sql) or die (mysql_error());

		while($linha = mysql_fetch_assoc($query)){
			echo '<option value="'.$linha["est_id"].'">'.$linha["est_nome"].'</option>';
		}
	?>
   </select><br/>
   Cidade<br/>
   <select name="cidade">
   	<option value="0">Escolha um Estado primeiro</option>
   </select>
</form>

</body>
</html>

 

cidades.php

<?php 
mysql_connect("localhost","root","");
mysql_select_db("banco");

$estado = $_POST['estado'];
$sql = "SELECT * FROM cidade WHERE cid_estado_id = '$estado' ORDER BY cid_nome ASC";
$query = mysql_query($sql) or die (mysql_error());		

if(mysql_num_rows($query) == 0){
	echo '<option value="0">Não há cidades neste Estado</option>';	
}else{
	while($linha = mysql_fetch_assoc($query)){
		echo '<option value="'.$linha["cid_id"].'">'.$linha["cid_nome"].'</option>';
	}
}

?>

Ficou bem simples e funcionando perfeitamente!

William obrigado pela ajuda!

T+

Compartilhar este post


Link para o post
Compartilhar em outros sites

não recomendo fazer dessa forma:

$("select[name=cidade]").html(valor);  

por isso que o meu trabalha com jSON.

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.