Ir para conteúdo

POWERED BY:

Arquivado

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

natalia fernandes

[Resolvido] combobox maluca!

Recommended Posts

Ola pessoal!

 

Não sei se estou a colocar a minha duvida no sitio certo, mas aqui vai:

 

tenho uma combobox que é alimentada por uma query. Ao selecionar uma opçao dessa combo é preenchida uma outra combobox atraves de ajax.

 

O problema é que só mostra a segunda combobox durante 1 segundo e depois desaparece :wacko:

 

Será que alguem sabe razão disto?

 

 

 

Obrigada desde já..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ainda não consegui resolver :(

 

Na página principal tenho isto:

 

CODE
<script src="script.js"></script>

<script>

function pesquisa(alojamento)

{

//Função que monta a URL e chama a função AJAX

ajaxLoad('busca_nome2.php?alojamento='+alojamento,'pagina1');

 

}

</script>

 

<?php if ($totalRows_rsMoradias > 0) { // Show if recordset not empty ?>

<form action="<?php echo $editFormAction; ?>" method="POST" enctype="multipart/form-data" name="form1" onSubmit="return ValidaCampos();">

<table align="center" cellpadding="0" cellspacing="0">

<tr valign="baseline">

<td nowrap="nowrap" height="25" >Alojamento <span class="titulos-verde">*</span></td>

<td><select name="alojamento" class="consola-box" id="alojamento" onchange="pesquisa(this.value)">

<option value=""></option>

<?php

do {

?>

<option value="<?php echo $row_rsMoradias['id_moradia']?>"><?php echo $row_rsMoradias['nome_moradia']?></option>

<?php

} while ($row_rsMoradias = mysql_fetch_assoc($rsMoradias));

$rows = mysql_num_rows($rsMoradias);

if($rows > 0) {

mysql_data_seek($rsMoradias, 0);

$row_rsMoradias = mysql_fetch_assoc($rsMoradias);

}

?>

</select> </td>

 

</tr>

<tr valign="baseline">

<td nowrap="nowrap" valign="bottom">Num. pessoas <span class="titulos-verde">*</span></td>

<td height="20"><div id="pagina1">Selecione o alojamento</div> </td>

</tr>

</table>

 

 

depois tenho no ficheiro busca_nome2.php

 

 

 

CODE

<?php require_once('../Connections/conn_Adr.php'); ?>

<?

if(!empty($_GET["alojamento"]))

{

 

mysql_select_db($database_conn_Adr, $conn_Adr);

$query_rsPessoas = "SELECT * FROM adr_moradias WHERE id_moradia like '$_GET[alojamento]'";

$rsPessoas = mysql_query($query_rsPessoas, $conn_Adr) or die(mysql_error());

$row_rsPessoas = mysql_fetch_assoc($rsPessoas);

$totalRows_rsPessoas = mysql_num_rows($rsPessoas);

?>

 

<select name="num_pessoas" class="consolapq-box" id="num_pessoas">

<option value="<?php echo $row_rsPessoas['pessoas1']?>"><?php echo $row_rsPessoas['pessoas1']?> pessoas</option>

<? if(($row_rsPessoas['pessoas2']!="") and ($row_rsPessoas['pessoas1']!=$row_rsPessoas['pessoas2'])){ ?>

<option value="<?php echo $row_rsPessoas['pessoas2']?>"><?php echo $row_rsPessoas['pessoas2']?> pessoas</option>

<? } ?>

<? if(($row_rsPessoas['pessoas3']!="") and ($row_rsPessoas['pessoas1']!=$row_rsPessoas['pessoas2']) and ($row_rsPessoas['pessoas2']!=$row_rsPessoas['pessoas3'])){ ?>

<option value="<?php echo $row_rsPessoas['pessoas3']?>"><?php echo $row_rsPessoas['pessoas3']?> pessoas</option>

<? } ?>

<? if(($row_rsPessoas['pessoas4']!="") and ($row_rsPessoas['pessoas1']!=$row_rsPessoas['pessoas2']) and ($row_rsPessoas['pessoas2']!=$row_rsPessoas['pessoas3']) and ($row_rsPessoas['pessoas3']!=$row_rsPessoas['pessoas4'])){ ?>

<option value="<?php echo $row_rsPessoas['pessoas4']?>"><?php echo $row_rsPessoas['pessoas4']?> pessoas</option>

<? } ?>

</select>

 

<?

}

?>

E por fim tenho no ficheiro script.js:

 

CODE
try{

xmlhttp = new XMLHttpRequest();

}catch(ee){

try{

xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");

}catch(e){

try{

xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

}catch(E){

xmlhttp = false;

}

}

}

 

fila=[];

ifila=0;

function ajaxLoad(url, destino){

jan = document.getElementById("pagina1");

if(destino!=Object){ destino = document.getElementById(destino); }

if(destino.nodeName=="SELECT"){

while(destino.options.length>0)destino.options[0]=null;

destino.options[0]=new Option(" -- Aguarde -- "," -- Aguarde -- ");

} else {

jan.style.display='';

}

fila[fila.length]=[url,destino];

if((ifila+1)==fila.length)ajaxRun();

}

function ajaxShow(valor,destino){

if(destino.nodeName=="SELECT"){

while(destino.options.length>0)destino.options[0]=null;

if(valor.charAt(0)=="[" && valor.charAt(valor.length-1)=="]"){

var destinoTmp=eval(valor);

for(var i=0;i<destinoTmp.length;i++){

destinoTmp[0]=unescape(destinoTmp[0]);

destinoTmp[1]=unescape(destinoTmp[1]);

destino.options[destino.options.length]=new Option(destinoTmp[1],destinoTmp[0]);

}

} else {

destino.options[destino.options.length]=new Option(valor,valor);

}

} else {

jan = document.getElementById("pagina1");

jan.style.display='none';

destino.innerHTML = unescape(valor);

}

}

function ajaxRun(){

url = fila[ifila][0];

destino = fila[ifila][1];

xmlhttp.open("GET", url, true);

xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=ISO-8859-1");

xmlhttp.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");

xmlhttp.setRequestHeader("Cache-Control", "post-check=0, pre-check=0");

xmlhttp.setRequestHeader("Pragma", "no-cache");

xmlhttp.onreadystatechange=function() {

if (xmlhttp.readyState==4){

switch(xmlhttp.status){

case 200: { ajaxShow(xmlhttp.responseText,destino); break }

case 204: { ajaxShow("O servidor não respondeu ao chamado",destino); break }

case 400: { ajaxShow("Endereço inválido",destino); break }

case 403: { ajaxShow("Você não possui permissão para acessar esse arquivo",destino); break }

case 404: { ajaxShow("Arquivo não encontrado",destino); break }

case 500: { ajaxShow("Erro interno do servidor...",destino); break }

case 502: { ajaxShow("Servidor ocupado.",destino); break }

case 503: { ajaxShow("O servidor não respondeu no tempo limite",destino); break }

default: { ajaxShow("Algum erro ocorreu ao carregar este conteúdo...",destino); break }

}

ifila++;

if(ifila<fila.length)setTimeout("ajaxRun()",20);

}

}

xmlhttp.send(url);

}

 

 

Só não consigo entender porque ele mostra a segunda combo durante 1 segundo!!

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.