Ir para conteúdo

Arquivado

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

NetBoy16

Ao selecionar estado preencher cidade

Recommended Posts

Eu estou tentando fazer com que ao selecionar o estado, automaticamente preencha as cidades relacionadas aquele estado, peguei um exemplo e estou fazendo igual, mas trocando as variaveis e dados do banco de dados, atualmente o codigo está assim:

 

 

novo_modelo.php:

                            Estado: <select style="width:150px;" name="estado" id="estado">                           
                           <option value ="" >- ESTADO -</option>
                           <?php
                               $sqlestado= "select * from tb_estados order by estado asc";
                               $resultestado = mysql_query($sqlestado, $connection) or die ("Não foi possível conectar!");

                               while($rowestado=mysql_fetch_assoc($resultestado)){

                                   //$id_estado = $rowestado["id_estado"];
                                   //$estado = $rowestado["estado"];
                                   //$estado = utf8_encode($estado); 

                                   echo '<option value ="'.$rowestado["id_estado"].'">'.utf8_encode($rowestado["estado"]).'</option>';
                               }
                           ?>
                         </select>
                           Cidade: <select style="width:150px;" name="cidade" id="cidade"><option  value ="" >- CIDADE -</option></select><br/><br/>
                           <script type="text/javascript">
                           $(function(){
                               $('#estado').change(function(){

                                   var valor234= $(this).val();

                                   if( $(this).val() ) {
                                       //$('#cod_ddd').hide();
                                       //$('.carregando').show();
                                       $.getJSON('/php/buscarCidadesPainelUsuario.php?',{id_estado: $(this).val(), ajax: 'true'}, function(j){
                                           var options = '<option value="">- CIDADE -</option>';	
                                           for (var i = 0; i < j.length; i++) {
                                               options += '<option value="' + j[i].id_cidade + '">' + j[i].cidade + '</option>';
                                           }	

                                           $('#cidade').html(options).show();
                                           //$('.carregando').hide();
                                       });
                                   } else {
                                       $('#cidade').html('<option value="">- CIDADE -</option>');
                                   }
                               });


                           });
                           </script>

 

 

buscarCidadesPainelUsuario.php

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

require ('../admin/conn.php');

mysql_set_charset('utf8', $connection);

$id_estado = mysql_real_escape_string($_GET['estado']);

$resposta = array();

$sql = "select cidade, id_cidade from tb_cidades where estado = '$id_estado' order by cidade asc";
$sql_result = mysql_query($sql, $connection) or die ("Não foi possível selecionar os eventos");

	while($row=mysql_fetch_assoc($sql_result)){


	//$cidadeNome = $row["cidade"];
	//$id_cidade = $row["id_cidade"];

	$resposta[] = array(

	'cidade' => $row["cidade"],
	'id_cidade' => $row["id_cidade"],

	);
  }

  echo( json_encode( $resposta ) );
  //echo $resposta =  "<option  value =\"$id_cidade\">$cidadeNome</option>";


?>

 

 

 

Preencher o estado ele preenche, mas quando eu seleciono o estado nada acontece no select cidade, alguém por favor pode me ajudar ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

aperta Ctrl+Shift+J e veja se aparece algum erro no console do firefox

Compartilhar este post


Link para o post
Compartilhar em outros sites

uso chrome, mas da na mesma(acredito eu), deu esse erro:

 

Failed to load resource: the server responded with a status of 404 (Not Found)

 

oque isso significa ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

que não achou o arquivo que você mandou buscar.

 

verifique o caminho.

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza, vou verificar

 

A funcao php está na pasta php que fica na raiz, o codigo fica em um arquivo php que fica na pasta admin que fica na pasta raiz, entao o caminho certo seria ../php/arquivo.php , certo ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

faça alguns testes:

$.getJSON('/php/buscarCidadesPainelUsuario.php',

$.getJSON('../php/buscarCidadesPainelUsuario.php',

 

(sem o sinal de ? )

Só você vai poder me dizer se tá certo ou não. :lol:

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza, vou fazer uns testes, qq coisa falo denovo.

 

Eu tentei de tudo(ou quase tudo), fiz um ultimo teste, coloquei o arquivo da funcao dentro da mesma pasta que o arquivo da pagina, da modifiquei o caminho deixando apenas assim:

 

$.getJSON('buscarCidadesPainelUsuario.php?',{id_estado: $(this).val(), ajax: 'true'}, function(j){...

 

 

 

Mas mesmo assim nao está dando certo, e agora ? :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

tira a interrogação:

$.getJSON('buscarCidadesPainelUsuario.php',

Compartilhar este post


Link para o post
Compartilhar em outros sites

tirei, ta asism agora:

 

                                        $.getJSON('buscarCidadesPainelUsuario.php',{id_estado: $(this).val(), ajax: 'true'}, function(j){

 

mas ainda n ta funcionando :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, abra o firefox, e aperte Ctrl+Shift+J e me diga oque aparece.

 

assim que você abre a página, e depois de você disparar a ação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Erro: erro de sintaxe

Arquivo-fonte: http://agenciazoom.com.br/admin/buscarCidadesPainelUsuario.php?id_estado=Piau%C3%AD&ajax=true

Linha: 1, Coluna: 1

Código-fonte:

[]

 

Senao for abusar da sua boa vontade de me ajudar será que você poderia dar uma olhadinha nesse posttb ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, vlw, agora deu certo, só restou um probleminha, nao estou conseguindo recuperar o valor do bd, o codigo ta assim:

 

 

js:

    <script>
window.onload = function() {
	new dgCidadesEstados({
	  cidade: document.getElementById('cidade'),
	  estado: document.getElementById('estado')
	});
}
   </script>

 

inputs:

                            Estado: <select style="width:150px;" name="estado" id="estado" value="<?=$estado?>"></select>
                           Cidade: <select style="width:150px;" name="cidade" id="cidade" value="<?=$cidade?>"></select><br/><br/>

 

 

você pode me ajudar por favor ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ajudo sim.

 

Veja que, no exemplo do DGMike, o value que fica no estado deve ser em formato sigla maiúscula (ex. SP, GO, TO, RJ), o que está sendo impresso pelo <?=$estado?> está neste formato?

Caso não, o script do dgmike não vai selecionar.

 

No caso da cidade, a variável <?=$cidade?> tem que retornar o nome da cidade.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O estado está no formato UF e a cidade está normal

Compartilhar este post


Link para o post
Compartilhar em outros sites

putz, pior que tenho mas é acesso restrito, foi mal, mas tem aqui uma foto:

 

imagemrpq.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não preciso do seu BD online, preciso da página online, ou do código fonte gerado, ou do relatório de erros do firebug.

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao, isso que to dizendo, o select que é carregado está dentro do painel administrativo que possu iacesso restrito, se você kiser eu posso dar um ctrl + U e te passar o cod fonte, lhe serve ?

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.