PHP - Lista Dependiente

 
Vista:
sin imagen de perfil

Lista Dependiente

Publicado por Jose Luis (1 intervención) el 21/02/2007 21:15:08
Una ayuda porfavor, me dieron un tutorial de como hacer listas dependientes.
http://www.tunait.com/javascript/ind...asdependientes
hice la codificacion con php y ahora solo llena la primera lista, estoy mal en algun codigo o estoy llenando mal la base de datos?

<DOCTYPE>
<html>
<head>
<title>Documento sin título</title>
<meta>
<script>
/************************************************
Listas dependientes por Tunait!(5/1/04)
Si quieres usar este script en tu sitio
eres libre de hacerlo con la condición
de que permanezcan intactas estas líneas,
osea, los créditos.
No autorizo a publicar y ofrecer el código
en sitios de script sin previa autorización
Si quieres publicarlo, por favor, contacta conmigo.
http://javascript.tunait.com/
[email protected]
*************************************************/
<!--
function slctr(texto,valor){
this.texto = texto
this.valor = valor
}
function slctryole(cual,donde){
if(cual.selectedIndex != 0){
donde.length=0
cual = eval(cual.value)
for(m=0;m<cual.length;m++){
var nuevaOpcion = new Option(cual[m].texto);
donde.options[m] = nuevaOpcion;
if(cual[m].valor != null){
donde.options[m].value = cual[m].valor
}
else{
donde.options[m].value = cual[m].texto
}
}
}
}

<link>
var cat_<res>=new Array()
cat_<res>] = new slctr('- -<res>- -')
<if>
cat_<res>] = new slctr("<res2>",'cat_<res2>');
mysql_close($link);

<? }
}
?>
//-->
</script>
</head>
<body>
<form>

<fieldset>
<select>
<option>- - Seleccionar - -</option>
<foreach>$cat){ ?>
<option><cat></option>

</select>
<select>
<option>- - - - - -</option>
</select>
<select>
<option>- - - - - -</option>
</select>
</fieldset>
</form>
</body>
</html>
_________________
Atte. Jose Luis el Cordero
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Oswaldo

RE:Lista Dependiente

Publicado por Oswaldo (4 intervenciones) el 22/02/2007 23:04:46
Estas usando Javascript y PHP al mismo tiempo, esta enredado tu ejemplo.
Yo creo que la forma correcta es construir con PHP las opciones del primer SELECT, y también un código en Javascript que sea el encargado de llenar el segundo SELECT según la seleccion de la primera, pero sin necesidad de recargar la página, que es realmente lo molesto de hacer todo en PHP.
Asi sería el codigo que resulte cuando PHP se ejecute en la computadora del usuario

<form action="formulario" method="get">
<!-- PRIMER SELECT -->
<SELECT NAME="primero" onChange="recargue(this.options[this.options.selectedIndex].value)">
<option value="0">Frutas</option> <!-- por defecto -->
<option value="1">Animales</option>
<option value="2">Planetas</option>
</SELECT>  
<!-- SEGUNDO SELECT -->
<SELECT NAME="segundo">
<option value="0">Manzanas</option>
<option value="1">Peras</option>
<option value="2">Bananas</option>
</SELECT>

<!-- OPCIONES PARA EL SEGUNDO SELECT -->
<script language="JavaScript" type="text/JavaScript">
// se forma un grupo con la cantidad de elementos del primer SELECT
var groups=document.forms(0).primero.options.length
var group=new Array(groups)
// cada elemento sera un subgrupo con las opciones del segundo SELECT
for (i=0; i<groups; i++) {
group[i]=new Array();
}
group[0][0]=new Option("Manzanas","1")
group[0][1]=new Option("Peras","2")
group[0][2]=new Option("Bananas","3")
group[1][0]=new Option("Perros","4")
group[1][1]=new Option("Gatos","5")
group[2][0]=new Option("Venus","6")
group[2][1]=new Option("Jupiter","7")
group[2][2]=new Option("Saturno","8")
// para actualizar el segundo SELECT

var seg=document.forms(0).segundo
function recargue(x) {
// eliminar elementos existentes del segundo SELECT
for (m=seg.options.length-1; m>0 ; m--){
seg.options[m]=null;
}
// llenarlo con los nuevos elementos
for (j=0;j<group[x].length;j++){
seg.options[j]=new Option(group[x][j].text, group[x][j].value);
}
}
</script>
</form>

Luego, si lees las opciones desde una tabla de MySQL, debes generar cada línea del Array con un bucle "for" o "while" de php y escribirlos con "echo", si necesitas ayuda con esto tambien, escríbeme a mi correo y te mando un ejemplo de esto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar