Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Frameworks JS (http://www.forosdelweb.com/f127/)
-   -   Desplegables dinámicos (http://www.forosdelweb.com/f127/desplegables-dinamicos-579789/)

Ziyad 25/04/2008 01:08

Desplegables dinámicos
 
Hola, tengo dos desplegables uno "Cursos" y otro "Alumnos" cargados desde una base de datos.
Me gustaría saber como puedo hacer para que en función del curso que se seleccione se carguen los alumnos inscritos a él de la base de datos, en el desplegable alumnos. Gracias.

crujikoki 25/04/2008 04:57

Re: Desplegables dinámicos
 
Hola,

La solución a tu problema se llama AJAX. Contesté a un post poniendo un ejemplo de lo que me pides. Mira a ver si te sive y sino pues lo comentas.

Ziyad 28/04/2008 01:34

Re: Desplegables dinámicos
 
Estoy analizandolo, pero no lo entiendo muy bien. ¿Qué es division?¿Y para que utilizo la función cuando onreadystatechange y ajax.send("texto1="+variable1+"&texto2="+variable2 );?.

Podrías explicarme esto o ponerme un ejemplo algo más sencillo.
Gracias por la ayuda.

crujikoki 28/04/2008 02:49

Re: Desplegables dinámicos
 
Hola,

Pues a ver:

Cita:

¿Qué es division?
Es el tag <div>

Cita:

¿Y para que utilizo la función cuando onreadystatechange y ajax.send("texto1="+variable1+"&texto2="+variable2 );?
Sobre el onreadystatechange, el en otro post puse esto:

Cita:

Otra cosa importante es el ajax.onreadystatechange, al que le asignas una función para que se ejecute en cuanto cambie. Puedes controlar varios estados del envio y recepción, pero cuando se cumple if (ajax.readyState==4) es cuando el envio y la recepción ya han finalizado.
Creo que está bastante claro, pero bueno. Eso es para controlar en que estado se encuentra tu consulta. El 4 es cuando ya ha finalizado, y es la que la mayoría de las veces interesa. Según para que cosas interesan otros estados, pero en este no.

El ajax.send("texto1="+variable1+"&texto2="+variable2 ); va ligado al ajax.open("POST", "crearPoblacion.php",true);. En el ajax.open, le digo a que documento mandaré los datos y como. En este caso los mando a crearPoblación.php y el métyodo es el POST. Si lo prefieres por GET pues pones GET en lugar de POST.
Dicho esto, en el ajax.send(); lo que hago es darle nombre a las variables y asignarles un valor, para que cuando vayas a consultarlas en tu PHP sepas cual es cada una. ajax.send("texto1="+variable1+"&texto2="+variable2 ); fué un ejemplo para aquel post, pero podría haber puesto cualquier otra cosa:

seleccion1 = document.getElementById("provincia").value
seleccion2 = document.getElementById("profesion").value
ajax.send("provincia="+seleccion1+"&profesion="+se leccion2 );

Te he contestado tus dudas???

JavierB 28/04/2008 03:32

Re: Desplegables dinámicos
 
Movido al foro de AJAX desde JavaScript.

Saludos, :adios:

Ziyad 28/04/2008 03:49

Re: Desplegables dinámicos
 
Gracias por la aclaración, lo he entendido pero no consigo hacerlo funcionar. Este es el código que tengo. Perdón por las molestias, no soy muy ducho en la materia.


<select name="curs" id="curs" onchange="<script language="JavaScript"> pasacurso();</script>">
<?php
$consulta= "Select nomcurs from cursos";
$cursos=mysql_query($consulta) or die ("Error al consultar cursos");
if(mysql_num_rows($cursos>0)) {
$row=mysql_fetch_array($cursos);
}
echo "<option value=''>Selecciona</option>";
while ($row=mysql_fetch_array($cursos)) {
echo '<option value='.$row["nomcurs"];
echo ' >';
echo $row["nomcurs"];
echo'</option>';
} ?>
</select>
<span class="Estilo5"><br />
Alumne</span>
<select name="Alumne" id="Alumne">
<?php
$curs= $_SESSION["curs"];
echo $curs;
$consulta= "Select nom from alumnos where curs='".$curs."'";
$alumnes=mysql_query($consulta) or die ("Error al consultar alumnes");
if(mysql_num_rows($alumnes>0)) {
$row2=mysql_fetch_array($alumnes);
}
echo "<option value=''>Selecciona</option>";
while ($row2=mysql_fetch_array($alumnes)) {
echo '<option value='.$row2["nom"];
echo ' >';
echo $row2["nom"];
echo'</option>';
} ?>
</select>

<script language="JavaScript"> function objetoAjax()
{
var xmlhttp=false;
try
{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
xmlhttp = false;
}
}

if (!xmlhttp && typeof XMLHttpRequest!='undefined')
{
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}


function pasacurso()
{
//obtener valores a enviar

variable1 = menu.document.getElementById("curso").value;

//instanciamos el objetoAjax
ajax=objetoAjax();

ajax.open("POST", "secrevirtu-profes.php",true);

ajax.onreadystatechange=function()
{
if (ajax.readyState==4)
{
division = menu.document.getElementById("form1");
division.innerHTML = ajax.responseText;
}
}

//esto no se que es
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

//envio los valores
ajax.send("curs="+variable1);
}
</script>

GatorV 28/04/2008 08:04

Re: Desplegables dinámicos
 
Hola Ziyad,

Te recomiendo que leas las FAQs del foro, hay ejemplos de como hacer desplegables o selects dinámicos y dependientes.

Saludos.


La zona horaria es GMT -6. Ahora son las 22:33.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.