Jump to content


gnuclear

Member Since 20/09/2005
Offline Last Active 16/08/2010, 23:01
-----

Posts I've Made

In Topic: [Resolvido] Problemas Com Combobox

13/08/2010, 14:36

Resolvido, agora funciona perfeitamente, quero agradecer a todos que colaboraram, LeoB e Andre Manoel.

O código não é meu, então vou colocar ele aqui para ajudar quem possa precisar

FORMULÁRIO:
<select name="estados" id="estados" >
        <option selected="selected">-- Estados --</option>
      </select>
      <br />
      <select name="cidades" id="cidades" onChange="alert(this.value);" >
        <option>-- Escolha um Estado --</option>
      </select>
      <br />
      <select name="bairros" id="bairros">
        <option>-- Escolha uma Cidade --</option>
      </select>

JavaScript que preenche os combobox:
jQuery(document).ready
(
        function() 
        {
            //carrega a combo de estados na primeira vez que a página é carregada
                $.get("localizacoes.php", { tipo: "estado" },
                    function(data){
                        $("#estados").html(data);
                        }
            );

                $("#estados").change(
                    function() {
                            if($(this).val() == 0) {
                                    alert('Você precisa informar o ESTADO!');
                                    $(this).focus();
                            } else {
                                    $.get("localizacoes.php", { tipo: "cidade", estado: $(this).val()},
                                            function(data){
                                                $("#cidades").html(data);
                                                }
                                    );                
                            }
                    }
            );//fim evento estados


                $("#cidades").change(
                    function() {
                            if($(this).val() == 0) {
                                    alert('Você precisa informar a CIDADE!');
                                    $(this).focus();
                            } else {   
                                        $.get("localizacoes.php", { tipo: "bairro", cidade: $(this).val()},
                                            function(data){
                                                $("#bairros").html(data);
                                                }
                                    );              
                            }
                    }
            );//fim evento cidades


                $("#bairros").change(
                    function() {
                            if($(this).val() == 0) {
                                    alert('Você precisa informar o BAIRRO!');
                                    $(this).focus();
                            } else {                
                                    return true;
                            }
                    }
            );        

                            
                          
        }
);

Arquivo PHP que faz a pesquisa e monta as opções:


// coloque aqui a conexão com o banco de dados
	$str = "";
        switch($_GET['tipo'])
        {
                case 'estado' :
                        
                        $result = mysql_query("SELECT * FROM estados_federacao")or die("Query invalida: " . mysql_error());
                        
                        while ($row = mysql_fetch_array($result)) {
                                        $option = $row["uf"];
                                $string = $row["estado"];
                                $str .= "<option value=\"$option\">$string</option>";
                                                }
                                                echo $str;
                        break;
                        
                case 'cidade' :
                        $result = mysql_query("SELECT * FROM municipios WHERE uf = '". $_GET['estado'] ."'") or die("Query invalida: " . mysql_error());;
                        
                        while ($row = mysql_fetch_array($result)) {
                                        $option = $row["nome_municipio"];
                                $string = $row["nome_municipio"];
                                $str .= "<option value=\"$option\">$string</option>";
                        }
                                                echo $str;      
                        
                        break;                  
                case 'bairro' :
                        
                        $result = mysql_query("SELECT * FROM municipios_bairros WHERE municipio = '". $_GET['cidade'] ."'" ) or die("Query invalida: " . mysql_error());;
                        
                        while ($row = mysql_fetch_array($result)) {
                                $option = $row["bairro_id"];
                                $string = $row["bairro"];
                                $str .= "<option value=\"$option\">$string</option>";
                        }
                        
                        echo $str;
                        
                        break;                  
        }


In Topic: [Resolvido] Problemas Com Combobox

13/08/2010, 11:26

vou colocar tudo

primeiro a parte do formulário:
 <select name="estados" id="estados" >
        <option selected="selected">-- Estados --</option>
      </select>
      <br />
      <select name="cidades" id="cidades" onChange="alert(this.value);" >
        <option>-- Escolha um Estado --</option> <!-- é aqui onde estão carregados as cidades e os bairros --->
      </select>
      <br />
      <select name="bairros" id="bairros">
        <option>-- Escolha uma Cidade --</option> <!-- é aqui onde os bairros DEVERIAM ser carregados --->
      </select>

O código em javascript

jQuery(document).ready
(
        function() 
        {
            //carrega a combo de estados na primeira vez que a página é carregada
                $.get("localizacoes.php", { tipo: "estado" },
                    function(data){
                        $("#estados").html(data);
                        }
            );

                $("#estados").change(
                    function() {
                            if($(this).val() == 0) {
                                    alert('Você precisa informar o ESTADO!');
                                    $(this).focus();
                            } else {
                                    $.get("localizacoes.php", { tipo: "cidade", estado: $(this).val()},
                                            function(data){
                                                $("#cidades").html(data);
                                                }
                                    );                
                            }
                    }
            );//fim evento estados


                $("#cidades").change(
                    function() {
                            if($(this).val() == 0) {
                                    alert('Você precisa informar a CIDADE!');
                                    $(this).focus();
                            } else {   
                                        $.get("localizacoes.php", { tipo: "bairro", cidade: $(this).val()},
                                            function(data){
                                                $("#cidades").html(data);
                                                }
                                    );              
                            }
                    }
            );//fim evento cidades


                $("#bairros").change(
                    function() {
                            if($(this).val() == 0) {
                                    alert('Você precisa informar o BAIRRO!');
                                    $(this).focus();
                            } else {                
                                    return true;
                            }
                    }
            );        

                            
                          
        }
);

e por fim o código php que faz a pesquisa e monta o resultado, esse até onde sei está certinho, o único problema dele é com relação a acentuação.

$str = "";
        switch($_GET['tipo'])
        {
                case 'estado' :
                        
                        $result = mysql_query("SELECT * FROM estados_federacao")or die("Query invalida: " . mysql_error());
                        
                        while ($row = mysql_fetch_array($result)) {
                                        $option = $row["uf"];
                                $string = $row["estado"];
                                $str .= "<option value=\"$option\">$string</option>";
                                                }
                                                echo $str;
                        break;
                        
                case 'cidade' :
                        $result = mysql_query("SELECT * FROM municipios WHERE uf = '". $_GET['estado'] ."'") or die("Query invalida: " . mysql_error());;
                        
                        while ($row = mysql_fetch_array($result)) {
                                        $option = $row["nome_municipio"];
                                $string = $row["nome_municipio"];
                                $str .= "<option value=\"$option\">$string</option>";
                        }
                                                echo $str;      
                        
                        break;                  
                case 'bairro' :
                        
                        $result = mysql_query("SELECT * FROM municipios_bairros WHERE municipio = '". $_GET['cidade'] ."'" ) or die("Query invalida: " . mysql_error());;
                        
                        while ($row = mysql_fetch_array($result)) {
                                $option = $row["bairro_id"];
                                $string = $row["bairro"];
                                $str .= "<option value=\"$option\">$string</option>";
                        }
                        
                        echo $str;
                        
                        break;                  
        }

Desde já agradeço pela ajuda

In Topic: [Resolvido] Problemas Com Combobox

12/08/2010, 16:40

Bom, ele carrega as cidades, mas quando uma delas é escolhida, aparece um Alert repetindo o nome da cidade, e logo em seguida somem todos os valores do combobox cidade.

de onde vem esse alert que aparece agora?
porque o combobox fica fazio depois de ser selecionado?

Até agora estava funcionando da seguinte forma:

No box do estado era selecionado o estado, em seguida apareciam as opções de cidades no box das cidades, ao selecionar a cidade aparecia um alert informando a cidade, e o box das cidades ficava em branco.

tentei corrigir até onde eu sabia, agora funciona assim:

No box do estado era selecionado o estado, em seguida apareciam as opções de cidades no box das cidades, ao selecionar a cidade aparecia um alert informando a cidade, e logo em seguida os bairros estão sendo carregados no box destinado para as cidades, e não no box dos bairros.

se alguem poder me dar uma luz eu agradeço

In Topic: [Resolvido] Problemas Com Combobox

11/08/2010, 13:25

resultado:

ACREALAGOASAMAZONASAMAP�BAHIACEAR�DISTRITO FEDERALESP�RITO SANTOSGOI�SMARANH�OMINAS GERAISMATO GROSSO DO SULMATO GROSSOPAR�PARA�BAPERNAMBUCOPIAU�PARAN�RIO DE JANEIRORIO GRANDE DO NORTEROND�NIARORAIMARIO GRANDE DO SULSANTA CATARINASERGIPES�O PAULOTOCANTINS

In Topic: [Resolvido] Problemas Com Combobox

11/08/2010, 12:08

agora sim tive uma reação da página, realmente o problema deve estar ai, coloquei tudo no plural, agora o local onde se escolhe o estado fica totalmente em branco, não aparece nenhuma opção, antes tinham as opções definidas no arquivo HTML. Acredito que resolvendo isso, o resto funcione.

Como faço para as opções de estado voltarem???

IPB Skin By Virteq