Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá galera, eu não entendi nada? Eu estou contruindo aqui uma combo box com jquery, até ai tudo bem, esta tudo certo e funcionando, mas assim que eu testo da isso aqui:
/applications/core/interface/imageproxy/imageproxy.php?img=http://img46.imageshack.us/img46/4062/001vd.jpg&key=7b673cd93e66d11899153aaf7093580a64ed5fa85e76b285061d82b0f870b1ac" alt="Imagem Postada" />
/applications/core/interface/imageproxy/imageproxy.php?img=http://img259.imageshack.us/img259/5291/002wr.jpg&key=d0758700a588c8a8a20f2c8297c8431e0d235e2aac428fb1364d69206be21939" alt="Imagem Postada" />
O código que eu estou usando é o seguinte:
combo.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">](http://www.w3.org/1999/xhtml)
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("select[name=estado]").change(function(){
$("select[name=cidade]").html('<option value="0">Carregando...</option>');
$.post("cidade.php",
{estado:$(this).val()},
function(valor){
$("select[name=cidade]").html(valor);
}
)
})
})
</script>
<?php require_once("conexao.php");?>
</head>
<body>
<form action="" method="post">
<select name="estado">
<option value="0">Escolha um estado</option>
<?php
$sql = "SELECT * FROM tb_estados ORDER BY nome ASC";
$qr = mysql_query($sql) or die (mysql_error());
while($tipo = mysql_fetch_assoc($qr)){
echo '<option value="'.$tipo['id'].'">'.$tipo['nome'].'</option>';
}
?>
</select>
<select name="cidade">
<option value="0" disabled="disabled">Escolha uma estado</option>
</select>
</form>
</body>
</html>
cidade.php
<?php require_once("conexao.php");
?>
<?php
$estado = $_POST['estado'];
$sql = "SELECT *FROM tb_cidades WHERE estado = '$estado' ORDER BY nome ASC";
$qr = mysql_query($sql) or die (mysql_error());
if(mysql_num_rows($qr) == 0){
$option = "<option value='0'>Não há cidades</option>";
echo utf8_decode($option);
} echo '<option value="'.$tipo['id'].'">'.$tipo['nome'].'</option>';
}
}
?>
Tem mais dois arquivos desse pequeno sistema, um é o da conexao.php que obviamente faz a conexão com o banco e o arquivo js/jquery-1.3.2.min.js que é o jquery em questão baixado direto do site da jquery.com.
O banco de dados em questão foi baixado desse site aqui:
http://www.webartz.com.br/mysql/banco-mysql-de-cidades-e-estados-do-brasil/
Não sei porque ao mostrar as infomações, além de mostrar uma de baixo da outra como um option simples ele mostra todas as infomações juntas umas das outras.
Desde já agradeço a ajuda de vocês.
Como está ficando cód gerado^?
>
Como está ficando cód gerado^?
O codigo esta do geito que eu mostrei ai na imagem, o resultado no OPTION aparece tudo junto e GRUDADO entende? Alem de fazer o normal que deixar um nome em baixo do outro.
No caso do amigo William Bruno eu testei o codigo que você me passou, cadastrei no banco e tudo mas não mostra nenhum resultado ao trocar o SELECT, de qualquer maneira queria só uma LUZ na solução de meu problema pois como ver meu código já esta pronto...um simples detalhe e funciona normal.
SOLUCIONADO!!!!
kkkk...vocês nem vão acreditar onde estava o erro do código?
Justamente no arquivo do qual eu não mostrei, o da conexao.php.
A porc$##%%@@!!!ria que estava me atrapalhando era um bendito codigo css que estava dentro do arquivo de conexao.php:
<style type="text/css">
.news {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
font-style: normal;
line-height: normal;
font-weight: bold;
color: #333333;
text-decoration: none;
}
</style>
<?php
mysql_connect("localhost","root","")or die("Não foi possivel conectar com o servidor<br><br>");
//echo "Você esta conectado ao servidor<br><br>";
mysql_select_db("franz") or die ("Não foi possivel conectar ao Banco de Dados<br><br>");
//echo "Você esta conectado ao Banco de Dados<br><br>";
?>
Ou seja, foi só eu tirar esse bendito código que o erro saiu:
<?php
mysql_connect("localhost","root","")or die("Não foi possivel conectar com o servidor<br><br>");
//echo "Você esta conectado ao servidor<br><br>";
mysql_select_db("franz") or die ("Não foi possivel conectar ao Banco de Dados<br><br>");
//echo "Você esta conectado ao Banco de Dados<br><br>";
?>
É brincadeira né? E vocês já devem saber a BARRA que é achar um dentalhe como esse com tantas outras coisas OBVIAS e IMPORTANTES para ver, quando eu ia saber que CSS ia atrapalhar o JQUERY e dar um resultado desse.
Mas valeu galera, mas um objetivo cumprido e quem passar o mesmo problema já tem solução ai.
Não achei nenhum erro também.. mas parece que o HTML gerado não está certo.
Confira com o debug do FireBug do Firefox..
mas isso aqui:
http://forum.imasters.com.br/index.php?/topic/365795-combos-dependentes-ajax-jquery/