Olá pessoal,
seguinte: estou usando ajax para que, quando um usuário selecionar uma universidade numa caixa de seleção, o ajax liste em outra caixa de seleção os cursos dessa universidade, para isso fiz o seguinte:
Na minha JSP:
<select name="ies" id="ies" onChange="javascript:buscar_cursos(this.value)">
<option value="XX">Selecione uma instituição</option>
<option value="UFRN">Universidade Federal do Rio Grande do Norte (UFRN)</option>
<option value="CEFETRN">Centro Federal de Educação Tecnológica do RN (CEFETRN)</option>
</select>
<select name="id_curso" id="id_curso">
</select>
Meu javascript:
function buscar_cursos(chave){
req = newXMLHttpRequest();
req.open("GET", "/consaberes/listar/cursos?chave="+chave,true);
req.onreadystatechange = function(){
if (req.readyState==4){
if(req.status==200){
var xml = req.responseXML;
montarCaixa_cursos(xml);
}else{
alert("Erro!");
}
}
}
req.send(null);
}
function buscar_cidades_nascimento(chave){
req = newXMLHttpRequest();
req.open("GET", "/consaberes/listar/cursos?chave="+chave,true);
req.onreadystatechange = function(){
if (req.readyState==4){
if(req.status==200){
var xml = req.responseXML;
montarCaixa_nascimento(xml);
}else{
alert("Erro!");
}
}
}
req.send(null);
}
function montarCaixa_cursos(xml){
var ies = document.getElementById("ies").value;
var caixa = document.getElementById("id_curso");
clean(caixa);
var cursos = xml.getElementsByTagName("curso");
for(i = 1; i <cursos.length; i++) {
caixa.options[i] = new Option(cursos[i].getElementsByTagName("nome").item(0).firstChild.data,cursos[i].getElementsByTagName("id_curso").item(0).firstChild.data);
}
}
O problema é que, quando eu seleciono uma universidade, apenas alguns poucos cursos são exibidos. Meu servlet que retorna o XML está funcionando perfeitamente, já conferi e ele realmente tem todos os cursos da universidade que eu escolher, acredito que o problema seja no javascript. Segue abaixo o formato do XML que o servlet gera:
<cursos>
<curso>
<id_curso>2</id_curso>
<sigla_ies>UFRN</sigla_ies>
<nome>Ciências da Computação</nome>
</curso>
<curso>
<id_curso>3</id_curso>
<sigla_ies>UFRN</sigla_ies>
<nome>Engenharia de Computação</nome>
</curso>
</cursos>
Nesse caso, quando eu seleciono UFRN, ele lista apenas o curso de Engenharia de Computação.
Bem pessoal, é isso. Desde já agradeço! =)