Ir para conteúdo


Revista PROGRAMAR - Edição 44 (Fevereiro 2014): Download já disponível!

- - - - -

Conforme check no radio button o conteudo da combobox muda


  • Por favor inicie sessão para responder
86 respostas a este tópico

#1 AndreLC

AndreLC

    Try-Catch User

  • Membro
  • PipPipPipPip
  • 442 mensagens

Publicado 24 de Janeiro de 2012 - 19:14

Boa tarde a todos,

Estou com uma pequena dúvida...

Eu tenho uma tabela designada "tipologia" em MySQL com os campos "id_tipologia" e "designacao", respectivamente. E uma tabela "tpimovel" com o "id_tpimovel" e respectiva "designacao".

A tabela tipologia:

1. Moradias
2. Apartamentos
3. Lojas
4. Escritório

E a tabela "tpimovel":

1. Habitação
2. Comercial

A minha dúvida é como procedo para que quando carregar no Tipo de Imóvel (radio button) a Tipologia mudar de conteúdo (combobox). Isto é, dou check em "Habitação" e o conteúdo na Tipologia seria "Moradias" e "Apartamentos", por exemplo. Mas se carregar em "Comercial" já a Tipologia na combobox seria "Lojas", Escritórios".

Tenho o código assim da radio e da combobox:

Código (PHP):
<label>Tipo de im&oacute;vel:</label><input type="radio" value="1" name="id_tpimovel" id="id_tpimovel">Habita&ccedil;&atilde;o&nbsp;&nbsp;<input type="radio" value="2" name="id_tpimovel" id="id_tpimovel">Comercial<br /><br><br>

<select name="tipologia">
                       
            <?php
                                       
                        require '../config/connect.php';
                                               
                        $query = "SELECT * FROM tipologia ORDER BY id_tipologia";
                        $result = mysql_query($query);
                        while($linha = mysql_fetch_array($result)){
             ?>
                           <option value="<?php echo $linha ['id_tipologia'];?>"><?php echo $linha ['designacao'];?></option><br/>
             <?php
                        }
              ?>
</select>
 

Aqui vai uma imagem para exemplificar melhor a dúvida:

Imagem Colocada

Obrigado pela ajuda.

Com os melhores cumprimentos,

AndreLC


EDIT: Titulo modificado

#2 pmg

pmg

    Unsigned User

  • Moderador
  • PipPipPipPipPipPip
  • 3688 mensagens

Publicado 24 de Janeiro de 2012 - 19:21

Precisas de recorrer a Javascript para fazeres o que queres.
A ideia e o PHP mandar *TUDO* (em Javascript) para o browser e no browser seleccionar o pretendido sem fazer mais viagens a base de dados.

#3 AndreLC

AndreLC

    Try-Catch User

  • Membro
  • PipPipPipPip
  • 442 mensagens

Publicado 24 de Janeiro de 2012 - 20:16

Pois estou a fazer "viagem" pela base de dados, devido esta parte estar incluida num formulário de inserção do imóvel e onde gravo as opções seleccionadas na BD.

Penso que acrescentando um campo na tabela tipologia que iria ser chave estrangeira e de seguida fazendo duas consultas uma eu que se tivesse como chave estrangeira 1 iria buscar todos os campos de habitação, senão serão os que estão relacionados com comercial. Colocaria a query como variável e se estiver cheched vai buscar a query respectiva. Isto na teoria. Na prática será uma boa abordagem?

Obrigado pela ajuda.

Cumprimentos,

AndreLC

#4 AndreLC

AndreLC

    Try-Catch User

  • Membro
  • PipPipPipPip
  • 442 mensagens

Publicado 25 de Janeiro de 2012 - 12:59

Ver Mensagempmg, em 24 de Janeiro de 2012 - 19:21, disse:

Precisas de recorrer a Javascript para fazeres o que queres.
A ideia e o PHP mandar *TUDO* (em Javascript) para o browser e no browser seleccionar o pretendido sem fazer mais viagens a base de dados.

Ok, fiz uma função em Javascript simples colocando a query em variável:

Código (Javascript):
function activa(id)
{

        if(document.getElementById("id_tpimovel").checked) // verifica se está checked
        {
                var query = 'SELECT * FROM tipologia ORDER BY id_tipologia = 1';
                //alert (query);
        }
        else
        {
                var query = 'SELECT * FROM tipologia ORDER BY id_tipologia = 2';
                //alert (query );
        }
}

Agora em PHP como a recupero?

Sei que se não estivesse em ciclo bastaria simplesmente:

Código (PHP):
$query = "<script>document.write(query)</script>";

Agora assim, estando em ciclo, como a recupero? Será só com jquery + ajax ou existe outra alternativa?

Obrigado.

Cumprimentos,

AndreLC

#5 AndreLC

AndreLC

    Try-Catch User

  • Membro
  • PipPipPipPip
  • 442 mensagens

Publicado 30 de Janeiro de 2012 - 17:48

OK, tentei de outra maneira. Tenho dois selects com o mesmo nome "tipologia" e com querys diferentes para carregar os valores diferentes nas options.
Ambas estão ao início como ocultas. Se clicar no tipo de imóvel Habitação aparece a "sub3", senão se clicar no tipo de imóvel Comercial aparece a "sub4".

Na tabela tipologia ficou conforme a imagem em baixo em que o id_combo se for igual a 1 mostra os resultados na "sub3", se for 2 mostra na "sub4".

Imagem Colocada

Reformulando a função para:

Código (Javascript):
function setVisibility(id, visibility) {
document.getElementById(id).style.display = visibility;

}

e adicionando os atributos onchange e onclick nos radiobuttons.

E assim, com esta abordagem consegui fazer o adicionar.

O código com que ficou o adicionar:

Código (PHP):
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Adicionar Im&oacute;vel</title>
<!--CSS está fora do html, mas aqui coloco assim para colocar tudo de uma vez -->
<style type="text/css">

#sub3 {
    display: none;
    width: 141px;      
}

#sub4 {
    display: none;
    width: 144px;        
}

</style>

<script language="Javascript">
function setVisibility(id, visibility) {
document.getElementById(id).style.display = visibility;

}
</script>

</head>
<body >

 <form name="form1" method="post" action="adicionar_imovel.php" enctype="multipart/form-data">
   
     <label>Tipo de im&oacute;vel:</label>
     <input type="radio" value="1" name="id_tpimovel" id="id_tpimovel" onchange="setVisibility('sub4', 'none');" onclick="setVisibility('sub3', 'inline');";>Habita&ccedil;&atilde;o
     <input type="radio" value="2" name="id_tpimovel" id="id_tpimovel" onchange="setVisibility('sub3', 'none');" onclick="setVisibility('sub4', 'inline');";>Comercial<br /><br />
   
     <label>Tipologia:</label>
     <select name="tipologia" id="sub3">
                       
                    <?php
                                       
                        require 'config/connect.php';
                                               
                        $qrytip = "SELECT * FROM tipologia WHERE id_combo = '1' ORDER BY id_tipologia";
                        $restip = mysql_query($qrytip);
                        while($linhatip = mysql_fetch_array($restip)){
                    ?>
                           <option value="<?php echo $linhatip['designacao'];?>"><?php echo $linhatip['designacao'];?></option><br/>
                    <?php
                         }
                     ?>
</select>
<select name="tipologia" id="sub4">
                       
                    <?php
                                       
                        require 'config/connect.php';
                                               
                        $qrtip2 = "SELECT * FROM tipologia WHERE id_combo = '2' ORDER BY id_tipologia";
                        $restip2 = mysql_query($qrtip2);
                        while($linhatip2 = mysql_fetch_array($restip2)){
                    ?>
                           <option value="<?php echo $linhatip2['designacao'];?>"><?php echo $linhatip2['designacao'];?></option><br/>
                     <?php
                         }
                       ?>
</select><br/><br/>
        <input class="ok_btn1_" type="submit" name="Submit" value="Adicionar" />
</form>

</body>
</html>

Agora o editar estou a fazer assim:

Código (PHP):
<?php

require 'config/connect.php';

        $idp= @$_GET['id'];
        $sqlz = mysql_query("SELECT * FROM imoveis where id = '$idp'");
        while($linha1 = mysql_fetch_array($sqlz)){

                         $id  = $linha1['id'];

        }

//querys
$qry_imovel = "SELECT * FROM imoveis WHERE id = '$idp';";
$exe_imoveis = mysql_query($qry_imovel);

$imovel = @mysql_fetch_array($exe_imoveis, MYSQL_ASSOC);

$qry_tipologias = "SELECT * FROM tipologia WHERE id_combo = '1' ORDER BY id_tipologia ASC;";
$exa_tipologias = mysql_query($qry_tipologias);

$qry_tipologias2 = "SELECT * FROM tipologia WHERE id_combo = '2' ORDER BY id_tipologia ASC;";
$exa_tipologias2 = mysql_query($qry_tipologias2);

?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Editar Im&oacute;vel</title>
<!--CSS está fora do html, mas aqui coloco assim para colocar tudo de uma vez -->
<style type="text/css">
#sub3 {
    display: none;
    width: 141px;      
}

#sub4 {
    display: none;
    width: 144px;        
}

</style>

<script language="Javascript">
function setVisibility(id, visibility) {
document.getElementById(id).style.display = visibility;

}
</script>

</head>
<body >
<?php
           
                $idp= $_GET['id'];
            $sql = mysql_query("SELECT * FROM imoveis WHERE id = '$idp' ORDER BY id DESC");
            while($rs = mysql_fetch_array($sql)){

                        $id                   = $rs['id'];
                        $id_tpimovel  = $rs['id_tpimovel'];
                        $tipologia       =       $rs['id_tipologia'];
                                               
            }
         
           ?>
<form method="post" action="teste.php?id=<?php echo $id ?>" enctype="multipart/form-data"><br />
   
    <label>Tipo de im&oacute;vel:</label>
    <input type="radio" name="id_tpimovel" id="id_tpimovel" onchange="setVisibility('sub4', 'none');" onclick="setVisibility('sub3', 'inline');"; value="1" <?php if(@$id_tpimovel == "1"): ?>checked="checked"<?php endif; ?> />Habita&ccedil;&atilde;o
   
    <input type="radio" name="id_tpimovel" id="id_tpimovel"  onchange="setVisibility('sub3', 'none');" onclick="setVisibility('sub4', 'inline');" value="2" <?php if(@$id_tpimovel == "2"): ?>checked="checked"<?php endif; ?> />Comercial<br /><br />
   
    <label>Tipologia:</label>
         <select name="tipologia" id="sub3" <?php if($id_tpimovel == "1"): ?>style="display: inline;"<?php endif; ?> >
            <?php
               while($tipologia = mysql_fetch_array($exa_tipologias)){
            ?>
               <!-- id_tipologia como chave estrangeira -->
               <option <?php if($imovel["id_tipologia"] == $tipologia["designacao"]): ?>selected="selected"<?php endif; ?> value="<?php echo $tipologia["designacao"]; ?>"><?php echo $tipologia["designacao"]; ?></option>
            <?php
               }
            ?>
        </select>
        <select name="tipologia" id="sub4" <?php if($id_tpimovel == "2"): ?>style="display: inline;"<?php endif; ?>>
            <?php
               while($tipologia2 = mysql_fetch_array($exa_tipologias2)){
            ?>
               <!-- id_tipologia como chave estrangeira -->
               <option <?php if($imovel["id_tipologia"] == $tipologia2["designacao"]): ?>selected="selected"<?php endif; ?> value="<?php echo $tipologia2["designacao"]; ?>"><?php echo $tipologia2["designacao"]; ?></option>
            <?php
               }
            ?>
        </select><br/><br/>        
        <input class="ok_btn1_" type="submit" name="button" id="button" value="Actualizar" />
</form>

</body>
</html>

Aqui estou a ir buscar o que está seleccionado com o selected e se pretender alterar a option tanto na sub3 como na sub4 ele alterar.

O que está a acontecer é que só está a alterar as options relativas à opção do tipo de imóvel Comercial, ou seja, na "sub4".

Se mudar para o tipo de imóvel Habitação, a qual irá carregar a "sub3" e se seleccionar alguma option daí, não está a alterar.

Por exemplo, no adicionar, adicionei o imóvel como sendo Comercial e com tipologia Industrial (conforme a imagem:

Imagem Colocada

). Se eu alterar para Loja Comercial, Escritório, Armazém, Terreno, Venda de Negócio, Loja com Escritório ou Garagem a alteração é feita sem problemas.

Mas se quiser alterar para o tipo de imóvel Habitação para tipologia Lojas (conforme a imagem:

Imagem Colocada

) ou qualquer opção deste select, ele não assume a alteração.

Na BD mantém a tipologia do tipo Comercial Industrial e não assume a alteração para o tipo de imóvel habitação tipologia Lojas, por exemplo.


O que poderá estar a acontecer?

O raciocínio é o mesmo. Se está a alterar na sub4, supostamente também devia de alterar na sub3.


Obrigado pela ajuda.

Cumprimentos,

AndreLC

#6 AndreLC

AndreLC

    Try-Catch User

  • Membro
  • PipPipPipPip
  • 442 mensagens

Publicado 31 de Janeiro de 2012 - 10:50

Estou pendente nisto.

Alguém pode dar uma ajuda, pff?

Obrigado,

Cumprimentos,
AndreLC

#7 HappyHippyHippo

HappyHippyHippo

    Stack Overflow

  • Membro
  • PipPipPipPipPipPipPip
  • 9921 mensagens

Publicado 31 de Janeiro de 2012 - 11:31

estas a complicar o simples :
porque não usas xmlHttpRequest para actualizar o conteudo do select após a selecção do radiobutton correspondente ?

ao seleccionar radiobutton "habitação" -> xmlHttpRequest (da-me a lista de tipologias associadas a habitação) -> coloca o resultado do request no select
ao seleccionar radiobutton "comercial" -> xmlHttpRequest (da-me a lista de tipologias associadas a comercial) -> coloca o resultado do request no select

#8 AndreLC

AndreLC

    Try-Catch User

  • Membro
  • PipPipPipPip
  • 442 mensagens

Publicado 31 de Janeiro de 2012 - 13:21

Podes dar-me um exemplo? Aplicaria o mesmo modo tanto para o adicionar como para o editar?

Não estou muito à vontade com o xmlHttpRequest em Ajax.

Obrigado pela ajuda @HappyHippyHippo.

#9 HappyHippyHippo

HappyHippyHippo

    Stack Overflow

  • Membro
  • PipPipPipPipPipPipPip
  • 9921 mensagens

Publicado 31 de Janeiro de 2012 - 13:33

http://www.tizag.com/ajaxTutorial/ajaxxmlhttprequest.php

Código (HTML):
<input type="radio" onselect="requestTypology()">
<script type="text/javascript">
function requestTypology() {
        var ajaxRequest;  // The variable that makes Ajax possible!
       
        try{
                // Opera 8.0+, Firefox, Safari
                ajaxRequest = new XMLHttpRequest();
        } catch (e){
                // Internet Explorer Browsers
                try{
                        ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {
                        try{
                                ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
                        } catch (e){
                                // Something went wrong
                                alert("Your browser broke!");
                                return false;
                        }
                }
        }
        // Create a function that will receive data sent from the server
        ajaxRequest.onreadystatechange = function(){
                if(ajaxRequest.readyState == 4){
                        document.getElementById("textarea_id").html = ajaxRequest.responseText;
                }
        }

        var url = "listOfTypologies.php?type=";
        // check the selected radio selected and add the correct param to the url
        ...

        ajaxRequest.open("GET", url, true);
        ajaxRequest.send(null);
}
</script>


#10 AndreLC

AndreLC

    Try-Catch User

  • Membro
  • PipPipPipPip
  • 442 mensagens

Publicado 31 de Janeiro de 2012 - 15:22

Estou com dificuldade em aplicar isto para o que tenho e está aqui uma bela confusão.

Podem-me ajudar?

Obrigado, desde já.

AndreLC

#11 HappyHippyHippo

HappyHippyHippo

    Stack Overflow

  • Membro
  • PipPipPipPipPipPipPip
  • 9921 mensagens

Publicado 31 de Janeiro de 2012 - 15:56

claro que podemos ajudar.... apesar de que o post anterior tem muito do código necessário para a implementaçao da solução.
no entanto tem que dizer onde tens a tua dúvida ...

#12 AndreLC

AndreLC

    Try-Catch User

  • Membro
  • PipPipPipPip
  • 442 mensagens

Publicado 31 de Janeiro de 2012 - 16:04

Na parte do:

Código (Javascript):
        var url = "listOfTypologies.php?type=";
        // check the selected radio selected and add the correct param to the url

É que não estou a passar nada como parâmetro nem a outra página...

E como estou a ir buscar os dados através das querys como procedo...

A minha questão é no que tenho o que tenho que retirar/refazer e de novo o que tenho que aplicar...

Como disse, Ajax não é o meu forte.

Obrigado pela ajuda, @HappyHippyHippo.

#13 HappyHippyHippo

HappyHippyHippo

    Stack Overflow

  • Membro
  • PipPipPipPipPipPipPip
  • 9921 mensagens

Publicado 31 de Janeiro de 2012 - 16:26

o código que coloquei não está completo ... não estás a mandar nada porque (como diz no comentário) espero que adiciones o valor referente ao radiobutton seleccionado, lembra-te que não sei como está o teu html !!!

no que toca ao ficheiro "listOfTypologies.php", só tens de ler da tua base de dados a lista de topologias que queres dependendo do parâmetro "type" e responderes(echo) de algo com este formato:

Código (HTML):
<option value="1">Terennos</option>
...

o que é respondido (o html que fizeste echo no ficheiro .php) terá que ser colocado dentro do elemento select

Código (Javascript):
document.getElementById("textarea_id").html = ajaxRequest.responseText;
terás somente de alterar o id para o id que tens no teu html

#14 AndreLC

AndreLC

    Try-Catch User

  • Membro
  • PipPipPipPip
  • 442 mensagens

Publicado 31 de Janeiro de 2012 - 17:20

O meu html, aliás php está publicado nos post em cima. Daí a minha dificuldade do que tinha aplicar para ajax.

Fiz assim o html:

Código (HTML):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Testar</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script type="text/javascript">
function requestTypology() {
        var ajaxRequest;  // The variable that makes Ajax possible!
       
        try{
                // Opera 8.0+, Firefox, Safari
                ajaxRequest = new XMLHttpRequest();
        } catch (e){
                // Internet Explorer Browsers
                try{
                        ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {
                        try{
                                ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
                        } catch (e){
                                // Something went wrong
                                alert("Your browser broke!");
                                return false;
                        }
                }
        }
        // Create a function that will receive data sent from the server
        ajaxRequest.onreadystatechange = function(){
                if(ajaxRequest.readyState == 4){
                        document.getElementById("tipologia").html = ajaxRequest.responseText;
                }
        }

        var url = "getidimovel.php?id_tpimovel=";
        // check the selected radio selected and add the correct param to the url
       

        ajaxRequest.open("GET", url, true);
        ajaxRequest.send();
}
</script>
</head>
<body>
<form enctype="multipart/form-data" action="" method="POST">
<p>
Qual o tipo de im&oacute;vel?
<br/>
<br/>

<input type="radio" id="id_tpimovel" name="id_tpimovel" value="1" onclick="requestTypology();" />
<label for="category">Habita&ccedil;&atilde;o</label>
<br/>
<input type="radio" id="id_tpimovel" name="id_tpimovel" value="2" onclick="requestTypology();" />
<label for="location">Comercial</label><br/><br/>

<select name="tipologia" id="tipologia">

</select>

</form>

</body>
</html>

E o getidimovel.php:

Código (PHP):
<?php
$id_tpimovel = $_GET['id_tpimovel'];

$tipologia = $_POST['tipologia'];

if ($id_tpimovel == '1') {
        echo '<option value="habitacao">Terrenos</option><option value="moradias">Moradias</option>';
} else {
        echo '<option value="lojacomercial">Loja Comercial</option><option value="escritorios">Escritorios</option>';
}



?>

Era +/- isto que me estavas a explicar? Ainda não está a dar. E eu não queria essa abordagem de fazer echo para mostrar as options. Pois eu tinha:

Código (PHP):
<select name="tipologia" id="sub3" <?php if($id_tpimovel == "1"): ?>style="display: inline;"<?php endif; ?> >
            <?php
               while($tipologia = mysql_fetch_array($exa_tipologias)){
            ?>
               <!-- id_tipologia como chave estrangeira -->
               <option <?php if($imovel["id_tipologia"] == $tipologia["designacao"]): ?>selected="selected"<?php endif; ?> value="<?php echo $tipologia["designacao"]; ?>"><?php echo $tipologia["designacao"]; ?></option>
            <?php
               }
            ?>
        </select>
        <select name="tipologia" id="sub4" <?php if($id_tpimovel == "2"): ?>style="display: inline;"<?php endif; ?>>
            <?php
               while($tipologia2 = mysql_fetch_array($exa_tipologias2)){
            ?>
               <!-- id_tipologia como chave estrangeira -->
               <option <?php if($imovel["id_tipologia"] == $tipologia2["designacao"]): ?>selected="selected"<?php endif; ?> value="<?php echo $tipologia2["designacao"]; ?>"><?php echo $tipologia2["designacao"]; ?></option>
            <?php
               }
            ?>
        </select>

E o que quero é gravar/editar (já com o selected) o valor da option. No getidimovel.php se fizer:

Código (PHP):
$tipologia = $_POST['tipologia'];
echo $tipologia;

Não está a retornar nada...

Obrigado pela ajuda.

#15 HappyHippyHippo

HappyHippyHippo

    Stack Overflow

  • Membro
  • PipPipPipPipPipPipPip
  • 9921 mensagens

Publicado 31 de Janeiro de 2012 - 17:32

Código (HTML):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
      <title>Testar</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <script type="text/javascript">
        function requestTypology() {
          var ajaxRequest;  // The variable that makes Ajax possible!
          try{
                // Opera 8.0+, Firefox, Safari
                ajaxRequest = new XMLHttpRequest();
          } catch (e){
                // Internet Explorer Browsers
                try{
                        ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {
                        try{
                                ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
                        } catch (e){
                                // Something went wrong
                                alert("Your browser broke!");
                                return false;
                        }
                }
          }
          // Create a function that will receive data sent from the server
          ajaxRequest.onreadystatechange = function(){
                if(ajaxRequest.readyState == 4){
                        document.getElementById("tipologia").html = ajaxRequest.responseText;
                }
          }

          var url = "getidimovel.php?id_tpimovel=";
          // é necessário adicionar o valor ao URL ....
          var buttonGroup = document.forms[0].id_tpimovel;
          for (var i=0; i < buttonGroup.length; i++) {
            if (buttonGroup[i].checked) {
               url += i;
            }
        }

       ajaxRequest.open("GET", url, true);
       ajaxRequest.send();
}
 </script>
  </head>
  <body>
    <form enctype="multipart/form-data" action="" method="POST">
      <p>
        Qual o tipo de im&oacute;vel?
        <br/>
        <br/>
        <input type="radio" id="id_tpimovel" name="id_tpimovel" value="1" onclick="requestTypology();" />
        <label for="category">Habita&ccedil;&atilde;o</label>
        <br/>
        <input type="radio" id="id_tpimovel" name="id_tpimovel" value="2" onclick="requestTypology();" />
        <label for="location">Comercial</label><br/><br/>
        <select name="tipologia" id="tipologia">
        </select>
    </form>
  </body>
</html>

E o getidimovel.php:
Código (PHP):
<?php

// a tua inicalização ...

$id_tpimovel = $_GET['id_tpimovel'];

// ir buscar os valores à base de dados com dependência a $id_tpimovel
$sql = "select * from tipologia where id_combo = $id_tpimovel";
$exa_tipologias = mysql_execute($sql);

while($tipologia = mysql_fetch_array($exa_tipologias)) {
  echo "<option value=\"{$tipologia["designacao"]}\">{$tipologia["designacao"]}</option>"
?>

simples e directo ... não percebo porque queres complicar ...

#16 AndreLC

AndreLC

    Try-Catch User

  • Membro
  • PipPipPipPip
  • 442 mensagens

Publicado 31 de Janeiro de 2012 - 17:50

Não está a dar ainda...

Acrescentei aí a linha da ligação e coloquei um } e ; que faltava no getidimovel.php, ficando:

Código (PHP):
<?php

// a inicalização ...
require 'config/connect.php';

$id_tpimovel = $_GET['id_tpimovel'];

// ir buscar os valores à base de dados com dependência a $id_tpimovel
$sql = "SELECT * from tipologia WHERE id_combo = $id_tpimovel";
$exa_tipologias = mysql_execute($sql);

while($tipologia = mysql_fetch_array($exa_tipologias)) {
        echo "<option value=\"{$tipologia["designacao"]}\">{$tipologia["designacao"]}</option>";
 }
 
//echo $sql;
//echo $tipologia;

?>

mas mesmo assim ainda nada. Não percebo o que está a acontecer de errado...

Tento fazer o echo à query por exemplo e não me retornada nada....

Obrigado pela ajuda.

#17 HappyHippyHippo

HappyHippyHippo

    Stack Overflow

  • Membro
  • PipPipPipPipPipPipPip
  • 9921 mensagens

Publicado 31 de Janeiro de 2012 - 17:53

desculpa ... nãó é mysql_execute mas sim mysql_query

ps:
segundo : espero que na tua inicialização esta o código de ligação à base de dados
terceiro : lembra-te que o código não está a validar o valor de $_GET['id_tpimovel']

#18 AndreLC

AndreLC

    Try-Catch User

  • Membro
  • PipPipPipPip
  • 442 mensagens

Publicado 31 de Janeiro de 2012 - 17:56

Ainda não está a funcionar...

Já está com:

Código (PHP):
$exa_tipologias = mysql_query($sql);

Sim está com o código da ligação à BD.

Não está a validar como?

O que poderá estar a acontecer?

#19 HappyHippyHippo

HappyHippyHippo

    Stack Overflow

  • Membro
  • PipPipPipPipPipPipPip
  • 9921 mensagens

Publicado 31 de Janeiro de 2012 - 17:57

tens isso online para uma pessoa ver o que está a acontecer ?

#20 AndreLC

AndreLC

    Try-Catch User

  • Membro
  • PipPipPipPip
  • 442 mensagens

Publicado 31 de Janeiro de 2012 - 18:20

Está aqui: http://www.prof2000.pt/users/andrelc90/imoveis/imovel.html

Não sei porque não dá...