• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Sign in to follow this  
Followers 0
AndreLC

Conforme check no radio button o conteudo da combobox muda

87 posts in this topic

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:

<label>Tipo de imóvel:</label><input type="radio" value="1" name="id_tpimovel" id="id_tpimovel">Habitação  <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:

img01nw.jpg

Obrigado pela ajuda.

Com os melhores cumprimentos,

AndreLC

EDIT: Titulo modificado

0

Share this post


Link to post
Share on other sites

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.

0

Share this post


Link to post
Share on other sites

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

0

Share this post


Link to post
Share on other sites

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:

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:

$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

0

Share this post


Link to post
Share on other sites

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".

tipologia.jpg

Reformulando a função para:

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:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Adicionar Imó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óvel:</label>
     <input type="radio" value="1" name="id_tpimovel" id="id_tpimovel" onChange="setVisibility('sub4', 'none');" onClick="setVisibility('sub3', 'inline');";>Habitaçã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:

<?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ó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ó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çã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:

comerciale.jpg

). 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:

habye.jpg

) 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

0

Share this post


Link to post
Share on other sites

Estou pendente nisto.

Alguém pode dar uma ajuda, pff?

Obrigado,

Cumprimentos,

AndreLC

0

Share this post


Link to post
Share on other sites

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

0

Share this post


Link to post
Share on other sites

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.

0

Share this post


Link to post
Share on other sites

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

<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>

0

Share this post


Link to post
Share on other sites

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

Podem-me ajudar?

Obrigado, desde já.

AndreLC

0

Share this post


Link to post
Share on other sites

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 ...

0

Share this post


Link to post
Share on other sites

Na parte do:

        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.

0

Share this post


Link to post
Share on other sites

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:

<option value="1">Terennos</option>
...

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

document.getElementById("textarea_id").html = ajaxRequest.responseText;

terás somente de alterar o id para o id que tens no teu html

0

Share this post


Link to post
Share on other sites

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:

<!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óvel?
<br/>
<br/>

<input type="radio" id="id_tpimovel" name="id_tpimovel" value="1" onclick="requestTypology();" />
<label for="category">Habitaçã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:

<?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:

<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:

$tipologia = $_POST['tipologia'];
echo $tipologia;

Não está a retornar nada...

Obrigado pela ajuda.

0

Share this post


Link to post
Share on other sites

<!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óvel?
        <br/>
        <br/>
        <input type="radio" id="id_tpimovel" name="id_tpimovel" value="1" onclick="requestTypology();" />
        <label for="category">Habitaçã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:

<?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 ...

0

Share this post


Link to post
Share on other sites

Não está a dar ainda...

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

<?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.

0

Share this post


Link to post
Share on other sites

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']

0

Share this post


Link to post
Share on other sites

Ainda não está a funcionar...

Já está com:

$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?

0

Share this post


Link to post
Share on other sites

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

0

Share this post


Link to post
Share on other sites

não aparece nada porque o servidor está a rejeitar o pedido ... dá erro no HTTP 403 : proibido ...

de certesa que o ficheiro getidimovel.php se encontra no servidor ???

0

Share this post


Link to post
Share on other sites

bem ... o servidor pode estar a bloquear .php

como tens o teu .html a ser interpretado com php, muda a extensão do ficheiro e no código javascript para ver se o servidor não se queixa

0

Share this post


Link to post
Share on other sites

Consegui com este código. Realmente ali em servidor não está a assumir php. Mas em localhost já dá:

Mudando a primeira página para:

<!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>Untitled Document</title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<script type="text/javascript">
function mostraTpimovel(str)
{
if (str=="")
  {
  document.getElementById("tipologia").innerHTML="";
  return;
  }
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("tipologia").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","getidimovel.php?id_tpimovel="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>
    <form enctype="multipart/form-data" action="" method="POST">
      <p>
        Qual o tipo de imóvel?
        <br/>
        <br/>
        <input type="radio" id="id_tpimovel" name="id_tpimovel" value="1" onclick="mostraTpimovel(this.value);" />
        <label for="habitacao">Habitação</label>
        <br/>
        <input type="radio" id="id_tpimovel" name="id_tpimovel" value="2" onclick="mostraTpimovel(this.value);" />
        <label for="comercial">Comercial</label><br/><br/>
        <select name="tipologia" id="tipologia">
        </select>
    </form>
</body>
</html>

e a getidimovel.php:

<?php

// a tua 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_query($sql);

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

//echo $sql;
//echo $tipologia;



?> 

Agora a minha dúvida mantem-se como faço para editar o valor? Ou seja ele ter já seleccionado o valor da checkbox e da tipologia e eu poder alterar entre o tipo de tipologia comercial e habitação sem problemas.

Obrigado pela ajuda.

0

Share this post


Link to post
Share on other sites

o combobox não está a ser actualizado correctamente com os valores vindo do getidimovel.php ??

0

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
Sign in to follow this  
Followers 0