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

thinkbrunus

[RESOLVIDO] Não escreve responseText

2 mensagens neste tópico

Bom dia!

No seguimento da dificuldade em solucionar o tópico post http://www.portugal-a-programar.pt/index.php?showtopic=29260, tentei outra alternativa, optando por utilizar AJAX.

Agora tou com dificuldade em escrever os resultados obtidos num select, para terem uma ideia estou a tentar o seguinte:

teste.js

function changeClasse(){
xmlHttp = getXmlHttpObject(); //inicializa variável com identificação do browser
var classe = encodeURI(document.getElementById('combo_classe').value);
nocache = Math.random();
xmlHttp.open("GET", "/admin/arquivo/teste.php?classe="+classe+"&nocache="+nocache);	
xmlHttp.onreadystatechange = function(){
	if (xmlHttp.readyState == 4) {	
		alert (xmlHttp.responseText);
		document.getElementById("combo_subclasse").innerHTML = xmlHttp.responseText;
	}
}
xmlHttp.send(null);
}

response.php

$sql = "SELECT * FROM subclasse WHERE id_classe='".$_GET['classe']."'";
$query = mysql_query($sql) or die(mysql_error());
	if (mysql_num_rows($query) == 0){
		echo '<option value="0">Sem subclasses!</option>';
	} else {	
			while ($rs = mysql_fetch_assoc($query)){
				echo '<option value="' . $rs['id_subclasse']. '">' . $rs['designacao']. '</option>';
			}
	}

Pretendo quando seja alterado o combo_classe, seja actualizado a combo_subclasse. Fiz um alert do responseText e ele apresenta os valores correcto, apenas não os escreve na combo!

O código parece-me estar correcto...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Viva!

Indicaram-me que alterasse:

document.getElementById("combo_subclasse").innerHTML = xmlHttp.responseText;

para:

document.getElementById("combo_subclasse").outerHTML = "<select id=\"combo_subclasse\" name=\"combo_subclasse\">"+xmlHttp.responseText+"</select>";

Assim fica a funcionar!

0

Partilhar esta mensagem


Link 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