Jump to content


jucabala

Member Since 23/12/2004
Offline Last Active 26/02/2014, 10:50
-----

#951248 Estados E Cidades Com Jquery

Posted by jucabala on 18/12/2008, 19:56

Ola, fiz uma pagina com dois campos Select box "Estados" e "Cidades" para carregar as cidades de acordo com o estado atraves do .load do JQuery.

A combo "Cidades" esta sendo preenchidas normalmente de acordo com o estado que escolho na combo "Estados".

O problema é quando eu cadastro uma nova Cidade e retorno a esta pagina ao selecionar o estado da nova cidade cadastrada ela nao e carregada na combo, somente as que ja estavam cadastradas.

Isso ocorre somente o IE pois no FireFox a nova cidade cadastrada é listada.

O codigo esta assim:

carrego o JQuery:
&lt;script type="text/javascript" src="../../script/jquery-1.2.6.js"></script>

A funcao que chama as cidades:
function carregaCidades(estado)
{		

	$("#cidade").load("ajaxCarregaCidade.php?estado="+estado);
	$("#cidade").ajaxError(function(request, settings){
		$("#cidade").html("Falha ao recuperar as Cidades.");  
	});
	
}

O html usado:
<tr class="tr-form">
			<td class="td-form">
			<table border="0" cellpadding="2" cellspacing="2"  class="table-form">
				<tr class="tr-form">
				  <td class="td-form"><table border="0" cellpadding="2" cellspacing="2" class="table-form">
					  <form name="formCidade" id="formCidade" action="" method="">
						
						<tr class="tr-form">
						  <td align="left" class="td-form" style="text-align: right; padding-left: 31px;">Estado:</td>
						  <td align="left" class="td-form">
							  <select id="estado" onChange="carregaCidades(this.value);">
							  <option selected value="0"> -- Selecione o Estado -- </option>
							  <!-- Se o numero de linhas que retornar do banco for maior que 0, ou seja, se tiver coisa no banco, então... -->
								<?php
								$estados = mysql_query("SELECT * FROM estados");
								if (mysql_num_rows($estados) > 0) { 							
									// vai pegar esse objeto e ir duplicando! 
									while($rs = mysql_fetch_object($estados)) {?>
									<option value="<? echo $rs->id; ?>"><? echo $rs->nome; ?></option>
									<? 
									}//termina while
								}//termina if
								mysql_close($dbcon);
								?>
							</select>
						   
						  </td>
						</tr>
						
						<tr class="tr-form">
						  <td align="left" class="td-form" style="text-align: right; padding-left: 31px;">Cidade:</td>
						  <td align="left" class="td-form" id="cidade">
							<select id="teste">
							  <option selected value="0"> -- Selecione o Estado -- </option>
							</select>
						  </td>
						</tr>
						<tr class="tr-form">
						  <td align="center" class="td-form" colspan="2">
							<input type="button" name="operation" value="Inserir" class="input-button-form2 inputMedio" onClick="inserirCidade();"/>
							<input type="submit" name="operation" value="Editar" class="input-button-form2 button-space" />
							<input type="submit" name="operation" value="Apagar" class="input-button-form2 button-space" />
						  </td>
						</tr>
					  </form>
					</table></td>
				</tr>

E o arquivo que busca as Cidades:

<?php require_once('../conect.php');

 
$estado=$_GET['estado']; 


?>
<select id="estado">
  <option selected value="0"> -- Selecione a Cidade -- </option>
  <!-- Se o numero de linhas que retornar do banco for maior que 0, ou seja, se tiver coisa no banco, então... -->
	<?php
	$cidades = mysql_query("SELECT * FROM cidades WHERE idestado = '$estado'");
	if (mysql_num_rows($cidades) > 0) { 							
		// vai pegar esse objeto e ir duplicando! 
		while($rscidade = mysql_fetch_object($cidades)) {?>
		<option value="<? echo ($rscidade->id); ?>"><?php echo ($rscidade->nome); ?></option>
		<? 
		}//termina while
	}
	else
	{
		?><option value="0" selected="selected">Nenhuma cidade Cadastrada</option><?
	
	}//termina if
	mysql_close($dbcon);
	?>
</select>

:rolleyes:


IPB Skin By Virteq