Jump to content
aantunesl

Populando selects de cidades

Recommended Posts

Senhores, me ajudem a descobrir qual o B.O. nesse sistema:
Form de cadastro >> Selects ( estado e cidade ) >> db

Tenho um formulário de cadastro, que grava no MySQL as informações.
Nos campos ESTADO e CIDADE, quero que, ao selecionar o estado, que seja carregado as cidades daquele determinado estado. Já tenho no MySQL uma tabela com todos os estados e cidades do Brasil, porem, falta fazer o formulário executar a consulta e gravar no banco, no cadastro do usuário.

Onde estou errando?
Sege o código:

FORM:

 <!-- form -->
        </section>
        <!-- content -->
      </div>
      <div id="register" class="animate form">
        <section class="login_content">
          <form style="margin-bottom: 0px !important;" class="form-horizontal" action="regadmin.php" method="post">
            <div><p><img src="../logoadmin.png"></p></div>
            <div>
              <input name="username" id="username" type="text" class="form-control" placeholder="Usuário" required="" />
            </div>
            <div>
              <input name="admin_email" id="admin_email" type="text" class="form-control" placeholder="Email" required="" />
            </div>
            <div>
              <input name="telefone" id="telefone" type="text" class="form-control" placeholder="ddd+telefone" required="" />
            </div>
            <div>
              <input name="celular" id="celular" type="text" class="form-control" placeholder="ddd+celular" required="" />
            </div>
            <div>
              <input name="password" id="password" type="password" class="form-control" placeholder="Senha" required="" />
            </div>
            <div>
            
           
		<label for="tb_estados">Estado:</label>
		<select name="tb_estados" id="tb_estados">
			<option value=""></option>
			<?php
				$sql = "SELECT tb_estados, uf
						FROM estados
						ORDER BY uf";
				$res = mysql_query( $sql );
				while ( $row = mysql_fetch_assoc( $res ) ) {
					echo '<option value="'.$row['tb_estados'].'">'.$row['uf'].'</option>';
				}
			?>
		</select>

		<label for="tb_cidades">Cidade:</label>
		<span class="carregando">Aguarde, carregando...</span>
		<select name="tb_cidades" id="tb_cidades">
			<option value="">-- Escolha um estado --</option>
		</select>

		<script src="http://www.google.com/jsapi"></script>
		<script type="text/javascript">
		  google.load('jquery', '1.3');
		</script>		

		<script type="text/javascript">
		$(function(){
			$('#tb_estados').change(function(){
				if( $(this).val() ) {
					$('#tb_cidades').hide();
					$('.carregando').show();
					$.getJSON('cidades.ajax.php?search=',{tb_estados: $(this).val(), ajax: 'true'}, function(j){
						var options = '<option value=""></option>';	
						for (var i = 0; i < j.length; i++) {
							options += '<option value="' + j[i].tb_cidades + '">' + j[i].nome + '</option>';
						}	
						$('#tb_cidades').html(options).show();
						$('.carregando').hide();
					});
				} else {
					$('#tb_cidades').html('<option value="">– Escolha um estado –</option>');
				}
			});
		});
		</script>
            
            </div>
            <div>
            <button class="btn btn-default submit" data-dismiss="modal" type="submit">Cadastrar ></button>
              
            </div>
            <div class="clearfix"></div>
            <div class="separator">

              <p class="change_link">Você é administrador? Então - 
                <a href="#tologin" class="to_register"> <b>Entre agora!</b> </a>
              </p>
              <div class="clearfix"></div>
              <br />
              
            </div>
          </form>
          <!-- form -->

REGADMIN.PHP:


<?php 
//PREENCHA OS DADOS DE CONEXÃO A SEGUIR:
 
$host= "*******************";
$db_name="***************";
$db_username="**************";
$db_password="***************";
 
 
// RECEBENDO OS DADOS PREENCHIDOS DO FORMULÁRIO !
$username	= $_POST ["username"];	
$admin_email	= $_POST ["admin_email"];	
$telefone	= $_POST ["telefone"];
$celular	= $_POST ["celular"];
$password	= $_POST ["password"];	

 
//conectando com o localhost - mysql
$conexao = mysql_connect($host,$db_name,$db_password);
if (!$conexao)
	die ("Erro de conexão com localhost, o seguinte erro ocorreu -> ".mysql_error());
//conectando com a tabela do banco de dados
$banco = mysql_select_db($db_name,$conexao);
if (!$banco)
	die ("Erro de conexão com banco de dados, o seguinte erro ocorreu -> ".mysql_error()); 
 
$query = "INSERT INTO `admin` ( `username` , `password` , `admin_email` , `telefone` , `celular` , `admin_id` ) 
VALUES ('$username', '$password', '$admin_email', '$telefone', '$celular', 'admin_id')";
 
mysql_query($query,$conexao);

echo "<p align=”center”><h1>Cadastro realizado com sucesso!</p> <p>Aguarde!! Nossa central, ativará seu cadastro.</h1></p>";
?>
</body>
</html>

CIDADES.AJAX.PHP:

<?php
	header( 'Cache-Control: no-cache' );
	header( 'Content-type: application/xml; charset="utf-8"', true );

	
	$tb_estados = mysql_real_escape_string( $_REQUEST['tb_estados'] );

	$cidades = array();

	$sql = "SELECT tb_cidades, nome
			FROM cidades
			WHERE estados_tb_estados=$tb_estados
			ORDER BY nome";
	$res = mysql_query( $sql );
	while ( $row = mysql_fetch_assoc( $res ) ) {
		$cidades[] = array(
			'tb_cidades'	=> $row['tb_cidades'],
			'nome'			=> $row['nome'],
		);
	}

	echo( json_encode( $cidades ) );

Alguem consegue me ajudar?

Abraço

Share this post


Link to post
Share on other sites

Mude

$.getJSON('cidades.ajax.php?search=',{tb_estados: $(this).val(), ajax: 'true'}, function(j){

Para:

$.getJSON('cidades.ajax.php?tb_estados=' + $(this).val(), function(j){

Share this post


Link to post
Share on other sites

Tentei amigo, mas não foi

 

 

Mude

$.getJSON('cidades.ajax.php?search=',{tb_estados: $(this).val(), ajax: 'true'}, function(j){

Para:

$.getJSON('cidades.ajax.php?tb_estados=' + $(this).val(), function(j){

Tentei amigo, mas não foi. Não está carregando =/

Share this post


Link to post
Share on other sites

 

Mude

$.getJSON('cidades.ajax.php?search=',{tb_estados: $(this).val(), ajax: 'true'}, function(j){

Para:

$.getJSON('cidades.ajax.php?tb_estados=' + $(this).val(), function(j){

 

 

 

 

Veja a estrutura das tabelas no banco de dados:

 

tabela "tb_estados"
1 id int(4) UNSIGNED ZEROFILL Não None AUTO_INCREMENT Muda Muda Elimina Elimina Browse distinct values Browse distinct values Primária Primária Show more actions Mais
2 estado int(2) UNSIGNED ZEROFILL Não 00 Muda Muda Elimina Elimina Browse distinct values Browse distinct values Primária Primária Show more actions Mais
3 uf varchar(4) utf8_bin Não Muda Muda Elimina Elimina Browse distinct values Browse distinct values Primária Primária Show more actions Mais
4 nome varchar(50) utf8_bin Não Muda Muda Elimina Elimina Browse distinct values Browse distinct values Primária Primária Show more actions Mais
5 dateinc timestamp Não CURRENT_TIMESTAMP Muda Muda Elimina Elimina Browse distinct values Browse distinct values Primária Primária Show more actions Mais Com os seleccionados: Todos / Nenhum Com os selec
tabela "tb_cidades"
1 id int(2) UNSIGNED ZEROFILL Não None AUTO_INCREMENT Muda Muda Elimina Elimina Browse distinct values Browse distinct values Primária Primária Show more actions Mais
2 uf varchar(10) utf8_bin Não Muda Muda Elimina Elimina Browse distinct values Browse distinct values Primária Primária Show more actions Mais
3 nome varchar(20) utf8_bin Não Muda Muda Elimina Elimina Browse distinct values Browse distinct values Primária Primária Show more actions Mais
4 dateinc timestamp Não CURRENT_TIMESTAMP Muda Muda Elimina Elimina Browse distinct values Browse distinct values Primária Primária Show more actions Mais Com os seleccionados: Todos / Nenhum Com os seleccionados: Procurar Procurar Muda Muda Elimina Elimina Primária Primária Único Único Índice Índice

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.