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

Sign in to follow this  
jcfr

Actualização automática de campos...

Recommended Posts

jcfr

Boas, tenho dois selects no registo de clientes, um corresponde ao distrito e outro ao concelho.

eu quero que ao seleccionar o distrito a listagem dos concelhos seja actualizada de acordo com o distrito seleccionado.

já tenho isso a funcionar, mas como tenho cada vez que mudo o distrito faço uma actualização da pagina completa.

isso faz com que, para que os outros campos nao sejam apagados, eu tenha de enviar alem do distrito também o resto dos dados que possam ja ter sido preenchidos antes de seleccionar o distrito.

o que eu queria era saber se há uma forma de fazer isto sem ter de actualizar toda a página.

O que tenho para perceberem melhor é isto:

tenho uma função em javascript que é chamada quando se altera o distrito:

function Openpart() {  
  
  var getNome = document.form1.nome.value;
  var getTelefone = document.form1.telefone.value;
  var getMorada = document.form1.morada.value;
  var getTelemovel = document.form1.telemovel.value;
  var getDistrito = document.form1.distrito.value;
  
  var getEmail = document.form1.email.value;
  
  
  

window.open('registo.php?nome=' + getNome+ '&telefone=' + getTelefone + '&telemovel=' + getTelemovel + '&morada=' + getMorada + '&distrito=' + getDistrito + '&email=' + getEmail,'_self');

}


depois tenho a função a ser chamada no distrito com o onchange:

<?php $sqlt = mysql_query("SELECT * FROM distritos ORDER BY id DESC") or die (mysql_error());
							$quant = mysql_num_rows($sqlt); ?>
                        
                        <select name="distrito" id="distrito" tabindex="3" class="combos" onChange="javascript:Openpart();">
                        	
        <?php while($row = mysql_fetch_array($sqlt)){ ?>
        <option value="<?php echo $row[0] ?>" <?php if (!(strcmp($row[0], $distrito))) {echo "selected=\"selected\"";} ?>><?php echo $row[1]?></option>
        <?php } ?>
      </select>

e a listagem dos concelhos é feita de acordo com o distrito:

<?php

				$sqlt = mysql_query("SELECT * FROM concelhos WHERE dist = '$distrito' ORDER BY id") or die (mysql_error());
							$quant = mysql_num_rows($sqlt); ?>
                        
                        <select name="concelho" id="concelho" tabindex="3" class="combos">
                        	
        <?php while($row = mysql_fetch_array($sqlt)){ ?>
        <option value="<?php echo $row[0]?>"<?php if (!(strcmp($row[0], $concelho))) {echo "selected=\"selected\"";} ?>><?php echo $row[1]?></option>
        <?php } ?>
      </select>


e obviamente no inicio da página tenho uma zona onde recebo os valores enviados pela função em javascript:

if (!isset($_GET['distrito'])){ 
        $distrito = "";

}else{
        $distrito = $_GET['distrito'];

}

if (!isset($_GET['morada'])){
        $morada = ""; 
}else{
        $morada = $_GET['morada']; 
}

if (!isset($_GET['concelho'])){
        $concelho = ""; 
}else{ 
        $concelho = $_GET['concelho'];
}
if (!isset($_GET['nome'])){ 
        $nome= ""; 
}else{
        $nome= $_GET['nome']; 
}

if (!isset($_GET['email'])){ 
        $email = ""; 
}else{ 
        $email = $_GET['email']; 
}

if (!isset($_GET['telefone'])){ 
        $telefone = ""; 
}else{
        $telefone = $_GET['telefone']; 
}



if (!isset($_GET['telemovel'])){ 
        $telemovel = ""; 
}else{ 
        $telemovel = $_GET['telemovel']; 
}

isto funciona mas eu queria que funcionasse ser ter de enviar os campos todos de novo para a página, algo que actualizasse automaticamente sem fazer refresh à página...

se poderem ajudar agradeço.

Share this post


Link to post
Share on other sites
Knitter

Enviar os dados todos até pode ser útil, mas se queres actualizar sem fazer um refresh completo vais ter de usar AJAX. Eventualmente, se os conhecimentos não são muitos e se o objectivo é apenas fazer este tipo de interacção, usar jQuery pode ser mais simples e rápido. jQuery é uma pequena framework/biblioteca que facilita o uso de AJAX, entre outras coisas.

Share this post


Link to post
Share on other sites
jcfr

conheces algum sitio onde possa encontrar uma explicação de como fazer isso? seja com jquery ou ajax?

agradecia emenso ou entao dizm o que devo procurar

Share this post


Link to post
Share on other sites
Knitter

Não conheço site nenhum especifico, mas o site do jQuery tem muita documentação e exemplos que podes ver. Fora isso, qualquer pesquisa no google por AJAX ou jQuery vai devolver-te muitos resultados com tutoriais.

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  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.