Hola, tengo que realizar un ejercicio de clase en el que al seleccionar un curso dentro de una etiqueta datalist, me muestre los alumnos que están matriculados en ese curso. A la hora de cargar los cursos se cargan todos los cursos que se encuentran dentro de la base de datos. Pero al seleccionar un curso y recargarse el datalist de alumnos, este último datalist se rellena con un valor "undefined". El código completo de este ejercicio es el siguiente:
Código HTML:
Ver original <meta name="viewport" content="width=device-width, initial-scale=1.0"> Curso:
Alumno:
Código Javascript
:
Ver originalvar objAjax;
function creaAjax(){
if (window.XMLHttpRequest) {
objetoAjax=new XMLHttpRequest();
}
else{
objetoAjax=new ActiveXObject("Microsoft.XMLHTTP");
}
return objetoAjax;
}
function load(){
objAjax=creaAjax();
objAjax.open('GET','cargaCurso.php',true);
objAjax.send();
objAjax.onreadystatechange=respuestaLoad;
}
function respuestaLoad(){
if(objAjax.readyState==4 && objAjax.status==200){
alert("responseText:"+objAjax.responseText);
var miArray=objAjax.responseText;
mostrarCursos(miArray);
}
}
function mostrarCursos(miArray){
var array_datos=JSON.parse(miArray);
var curso=document.getElementById("curso");
curso.innerHTML="";
var inputCurso=document.createElement("input");
inputCurso.setAttribute("list","listaCursos");
var datalist=document.createElement("datalist");
datalist.setAttribute("id","listaCursos");
for(var i in array_datos){
var opcion=document.createElement("option");
opcion.setAttribute("value",array_datos[i].COD_GRUPO);
datalist.appendChild(opcion);
}
inputCurso.addEventListener('change',cargarAlumno,true);
inputCurso.appendChild(datalist);
curso.appendChild(inputCurso);
}
function cargarAlumno(){
var curso=document.getElementById("listaCursos").value;
alert(curso);
objAjax.open('GET','cargarAlumnos.php?CURSO='+curso,true);
objAjax.send();
objAjax.onreadystatechange=respuestaCargaAlumno;
}
function respuestaCargaAlumno(){
if(objAjax.readyState==4 && objAjax.status==200){
alert("responseText:"+objAjax.responseText);
var miArray=objAjax.responseText;
mostrarAlumnos(miArray);
}
}
function mostrarAlumnos(miArray){
var array_datos=JSON.parse(miArray);
var alumno=document.getElementById("alumno");
alumno.innerHTML="";
var inputAlumno=document.createElement("input");
inputAlumno.setAttribute("list","listaAlumnos");
var datalist=document.createElement("datalist");
datalist.setAttribute("id","listaAlumnos");
for(var i in array_datos){
var opcion=document.createElement("option");
opcion.innerHTML=array_datos[i].NOM_ALUM;
opcion.setAttribute("value",array_datos[i].NOM_ALUM);
datalist.appendChild(opcion);
}
inputAlumno.appendChild(datalist);
alumno.appendChild(inputAlumno);
}
Código PHP:
Ver original$curso=$_REQUEST['CURSO'];
$sql=mysqli_query($conexion,"select NOM_ALUM from alumnos WHERE GRUPO=".$curso."");
No me sale ningún error en el JavaScript ni en el PHP sin embargo no me muestra los alumnos que están matriculados en el curso que he seleccionado. Que error puedo tener y que posible solución puedo aplicar.
Muchas gracias por la ayuda.