Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

jcfr

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

Mensagens Recomendadas

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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.