Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/07/2015, 16:44
mtr_1101
 
Fecha de Ingreso: junio-2015
Mensajes: 2
Antigüedad: 8 años, 10 meses
Puntos: 0
No me trae valores de tabla con ajax

Hola muy buenas noches, tengo cierta duda no se que estoy haciendo mal. Soy nuevo utilizando ajax tengo este pequeño problema. tengo una tabla llamada asignaturas y otra cursos.. en donde tengo el campo id_curso en la tabla asignatura.. existe relación en ambas tablas ya que con ella se que asignaturas perteneces a un curso.... quiero traer las asignaturas pertenecientes a un curso.. pero no me trae ningun valor del combo! este es mi codigo trabajo con MVC.
Código PHP:
<html>
<head>
<title> ASIGNACION DE PROFESORES </title>
<link rel="stylesheet" type="text/css" href="css/formulariocss-registros.css">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script type="text/javascript" src="script/asignaturas-secciones.js"></script>
</head>
<body>
<h2>  ASIGNACIÓN DE PROFESORES </h2>
<form name="asignacion-profesores" method="POST" action="controlador.php?opc=20">
<table border="1">
    <tr>
        <td colspan="4"> &nbsp; <b>ASIGNACION DE PROFESORES</b> <br /><hr></td>
    </tr>
    <tr>
        <td align="center"> <b>NOMBRE</b></td>
        <td align="center"> <b>AÑO</b></td>
        <td align="center"> <b>ASIGNATURA</b></td>
        <td align="center"> <b>SECCIÓN</b> </td>
    </tr>
    <tr>
        <td class="td-campos" style="width: 210px;"> 
        <select style="width: 200px;"> 
        <option value="0"> Seleccione </option>
    <?php 
    
    
for($i=0$i<count($id); $i++){
    
$sql="SELECT * FROM profesores WHERE id=".$id[$i];
    
    
// echo $sql;
    
    
$r $db->consultas($sql);
    
$datos=mysql_fetch_object($r);
    
    
?> 
        <option value="<?php $datos->id?>"> <?php echo $datos->apellido?> </option>
    <?php
    

    
?> 
        </select><br /><br />
        </td>
        <td class="td-campos" style="width: 200px;">
            <select name="curso" style="width: 120px;" onchange="getCurso(this.value);">
            <option value="" selected=""> Seleccione </option>
    <?php
    $sql2
="SELECT * FROM cursos";
    
$r2 $db->consultas($sql2);
    
    while(
$datos2=mysql_fetch_object($r2)){    
    
?>
            <option value="<?php $datos2->id?>"> <?php echo $datos2->curso.' '.'Año'?></option>
    <?php
    
}
    
?>
            </select><br /><br />
        </td>
        <td class="td-campos" style="width: 200px;">
        <div style="display: inline-table;" id="div_combo2">
                    <select style="width: 180px;" disabled>
                    <option selected="" value="" disabled> Seleccione </option>
                    </select>
            </div><br /><br />
        </td>
    </tr>
    <tr>
        <td align="right" colspan="4"><br /> <button type="submit"> Guardar </button> Agregar <input type="text" name="fila" value="1" size="5"/> Fila(s) <button> Continuar </button> <br /> <br /></td>
    </tr>
    <input type="button" value="Actualizar Página" onclick="window.location.reload()" />
</table>
</form>
</body>
</html>
    <?php
        
    
} else {
        echo 
"<script language='javascript'>
            alert ('No selecciono ningun profesor');
            window.location='vista.php?opc=16'
            </script>"
;
    }
y este es el archivo js

Código Javascript:
Ver original
  1. //FUNCION AJAX PARA LLAMAR LOS DATOS DEL SEGUNDO COMBO
  2.     function getCurso(id_combo1){ //variable que espera la funcion
  3.       var xmlhttp;
  4.  
  5.       if (window.XMLHttpRequest){// codigo for IE7+, Firefox, Chrome, Opera, Safari
  6.         xmlhttp=new XMLHttpRequest();
  7.       }else{// codigo for IE6, IE5
  8.         xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  9.       }
  10.  
  11.       //funcion que se llama cada vez que cambia la propiedad readyState
  12.       xmlhttp.onreadystatechange=function(){
  13.         //readyState 4: peticion finalizada y respuesta lista
  14.         //status 200: OK
  15.         if (xmlhttp.readyState===4 && xmlhttp.status===200){
  16.           //Pasar la respuesta html a div_combo2
  17.           document.getElementById("div_combo2").innerHTML=xmlhttp.responseText;
  18.         }
  19.       };
  20.  
  21.       /* open(metodo, url, asincronico)
  22.        * metodo: post o get
  23.        * url: localizacion del archivo en el servidor
  24.        * asincronico: comunicacion asincronica true o false.
  25.       */
  26.       xmlhttp.open("POST","vista.php?opc=33",true);
  27.  
  28.       //establece el header para la respuesta
  29.       xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
  30.  
  31.       //enviamos las variables al archivo get_combo2.php
  32.       xmlhttp.send("id_combo1=" + id_combo1);    
  33.     }


Este deveria traerme los datos


Código PHP:
       case 33:
         
    $id_periodo=$_SESSION['idperiodo'];
    $id_combo1=$_POST["id_combo1"];

    ?>
<select style="width: 180px;" name="curso">
    <option value=""> Seleccione </option>
    <?php 

    $sql
="SELECT * FROM asignaturas WHERE id_curso = $id_combo1 AND id_periodo = $id_periodo";

    
$resultado $db->consultas($sql);
    while(
$datos=mysql_fetch_object($resultado)) {
    
     
?>               
    <option value="<?php echo $datos->id?>"><?php echo  $datos->asignatura; } ?></option>
</select> 
    <?php   
    
break;
}
// FIN DEL SWITCH

Última edición por mtr_1101; 19/07/2015 a las 16:53