Ir para conteúdo

POWERED BY:

Arquivado

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

walterwac

[Resolvido] combobox php sem ajax

Recommended Posts

tb_estados tabela cliente relacionamentos tb_estadost.id e tb_cidades.id

id uf nome id estado uf nome

01 AC Acre 0001 01 AC Acrelandia

02 AL Alagoas 0023 02 AL Agua Branca

03 AM Amazonas 0271 03 AM Uarini

04 AP Amapá 0275 04 AP Abacate da Pedreira

 

Estou estudando à 4 dias como realizar o preencimento de combobox à partir de tabelas(estado e municipio) e logo após preencher um textbox com as informações

*** sem o uso de ajax(devido o alto grau de complexidade)

<html>   
<head>   
   <title>Cadastrar Bairro</title>   
<script>   
      function filtrar(){   
      document.forms[0].hidAction.value="filtrar";   
      document.forms[0].action="<?php echo $PHP_SELF ?>";   
      document.forms[0].submit();   
   }   
   </script>  
</head>   
<body>   

<form action='frmCadastrarBairro.php?var=combo1' method='POST'>   

<table border='0' align='center'>   
   <tr>   
<td>SELECIONE O  ESTADO :   
    <td> <select name='combo1' >   
       <?php   

           //acesso ao bd
  include "conecta_banco.inc";


   //sql = "SELECT tb_estados.cod_uf,tb_estados.nome_uf FROM ESTADO;";   
         //$sql = ("SELECT * FROM tb_estados;")or die(mysql_error());   
         //$qry = mysql_query($sql,$connect);   

    $qry = mysql_query("SELECT * FROM tb_estados") or die(mysql_error());
           while ($ve=mysql_fetch_array($qry)){   
               echo "<option value=".$ve['id'].">".$ve['nome']."</option>";   
           }   


       ?>   

</select></td>   

       <td>SELECIONE A CIDADE :</td>   
           <?php   

   if (isset($_GET['var'])){   
       $var = $_GET['var'];   
   }   
 if (isset($_POST['combo1'])){   

//  $sql="SELECT cad_cidade.cod_uf,cad_cidade.cidade,cad_cidade.cadastro,estado.cod_uf FROM cad_cidade,estado   
   $qry=("SELECT tb_cidades.id,tb_estados.id FROM tb_cidades,tb_estados WHERE tb_cidades = $_POST[combo1] and tb_cidade.id=tb_estados.id;")or die(mysql_error());   
   echo "<td><select name='combo2' >";   
       //$qry = mysql_query($sql);   

      while ($v=mysql_fetch_array($qry)){   
      echo "<option value=".$v['cadastro']." >".$v['nome']."</option>";   
           }   
}   
 ?>   
           </select>   
           </td>   

</tr>   
           <tr>   
               <td>Adicionar : <input type='text' name='adicionar'></td>   
           </tr>   
           <tr>   
           <td><input type='Submit' value='adicionar'></td>   
</table>   
</body>   
</html>  

 

é possivel determinar meu erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oke esta acontecendo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

*** sem o uso de ajax(devido o alto grau de complexidade)

 

Não vejo nada de complexo em um select onde você seleciona um estado e carrega em outro select as cidades daquele estado.

 

Isso é muito comum e bastante utilizado, e ao meu ver ficaria muito melhor com Ajax do que com POST e recarregamento de página.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não vejo nada de complexo em um select onde você seleciona um estado e carrega em outro select as cidades daquele estado.

 

Isso é muito comum e bastante utilizado, e ao meu ver ficaria muito melhor com Ajax do que com POST e recarregamento de página.

 

....

 

Oke esta acontecendo?

 

Após selecionar o estado não consigo fazer listar os municípios além de mais tarde ter que me preocupar com com adição dos mesmo em textbox

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso aki esta errado

 

$qry=("SELECT tb_cidades.id,tb_estados.id FROM tb_cidades,tb_estados WHERE tb_cidades = $_POST[combo1] and tb_cidade.id=tb_estados.id;")or die(mysql_error());

 

esta faltando o mysql_query ai...

 

$qry=mysql_query("SELECT tb_cidades.id,tb_estados.id FROM tb_cidades,tb_estados WHERE tb_cidades = $_POST[combo1] and tb_cidade.id=tb_estados.id;")or die(mysql_error());

 

 

Agora testa ai

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso aki esta errado

 

$qry=("SELECT tb_cidades.id,tb_estados.id FROM tb_cidades,tb_estados WHERE tb_cidades = $_POST[combo1] and tb_cidade.id=tb_estados.id;")or die(mysql_error());

 

esta faltando o mysql_query ai...

 

$qry=mysql_query("SELECT tb_cidades.id,tb_estados.id FROM tb_cidades,tb_estados WHERE tb_cidades = $_POST[combo1] and tb_cidade.id=tb_estados.id;")or die(mysql_error());

 

 

Agora testa ai

 

Obrigado pela ajuda, entretanto há algo mais errado. Vou comprar um livro e estudar mais php. Caso eu não consiga eu irei realizar um orçamento para esta construção.

 

Muito obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não cheguei a comprar o livro, mas com um breve estudo sobre a biblioteca jquery, já consigo selecionar estado e listar as cidades agora só me resta saber como adicionar estes dois em um texbox.

 

Bem vou ler à respeito!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se deseja fazer isso em runtime sem recarregar a página terá de usar JavaScript, agora se for recarregando a página é simples

 

Origem.php


<form action="destino.php" method="post">
Estado <select name="estado">
<option value="SC">Santa Catarina</option>
<!-- DEMAIS ESTADOS -->
</select>

Cidade <selection name="cidade">
<option value="Joinville">Joinville</option>
</select>

<input type="submit" value="Enviar" />
</form>

 

 

destino.php


if(isset($_POST["estado"]))
   $estado = $_POST["estado"];

if(isset($_POST["cidade"]))
   $cidade= $_POST["cidade"];

<input type="text" name="UFcidade" value="<?=$estado." - ".$cidade?>">

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pelo esclarecimento, entretanto de fato necessito conhecer o método por javascript.

 

Acredito ainda, que terei que criar uma função.

 

Vou procurar informações sobre.

De qualquer forma muito obrigado mesmo!

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oops! Me enganei com o nome do elemento, na verdade o intuito é alimentar um textarea ao invés de textbox com valores dos combobox's.

Bem de qualquer forma consegui resolver!

 

Modificação no código

 

<script>

 function preencher(){   
  var e = document.form.estado.selectedIndex; 
  var c = document.form.cidade.selectedIndex; 

     document.form.area.value = (document.form.estado[e].text+' - '+document.form.cidade[c].text);   


 }

</script>,

 

Funciona perfeitamente!

 

Entretanto, os valores dos combobox's adicionados no textexarea, estão sendo sobrepostos. Alguem pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Funciona!

 

<script type="text/javascript">

 function preencher(){
 //Cria indice   
  est = document.form.estado.selectedIndex; 
  mun = document.form.cidade.selectedIndex; 

           //Concatenação dos vetores, input e output
  sel= (document.form.estado[est].text+' - '+document.form.cidade[mun].text);
  inp = document.form.placa.value;
  out = document.form.area.value;
  document.form.area.value = out + sel +' - '+ inp + "\n";

  //Limpa os campos
  document.form.placa.value = "";
  document.form.estado.value = "";
  document.form.cidade.value = "";


 }

</script>

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.