Foros del Web » Programando para Internet » PHP »

Listas dependientes que no vienen de BD

Estas en el tema de Listas dependientes que no vienen de BD en el foro de PHP en Foros del Web. Saludos!! mi pregunta es la siguiete, quiero crear dos listas que sean dependientes pero que no se llenen a partir de una base de datos ...
  #1 (permalink)  
Antiguo 18/06/2006, 06:10
Avatar de jeanclon  
Fecha de Ingreso: mayo-2005
Mensajes: 258
Antigüedad: 12 años, 6 meses
Puntos: 2
Listas dependientes que no vienen de BD

Saludos!!
mi pregunta es la siguiete, quiero crear dos listas que sean dependientes pero que no se llenen a partir de una base de datos sino de valores que coloco en un script. los codigos son estos.

Primer combo lista (llama a la funcion)
Código PHP:
<select name="Telemento" onChange="componer(this.value)">
        <
option value="" selected>Seleccione: </option>
        <
option value="uno">uno</option>
        <
option value="dos">Valor dos</option>
        <
option value="tres">tres</option>
      </
select
Código:
function componer(elemento) {
	switch(elemento) {
		case "uno":
			document.agregar.elemento.options[0] = new Option("Seleccione: ","");
			document.agregar.elemento.options[1] = new Option("primero","primero");
		break;
		case "dos":
			document.agregar.elemento.options[0] = new Option("Seleccione: ","");
			document.agregar.elemento.options[1] = new Option("del dos","del dos");
			document.agregar.elemento.options[2] = new Option("segundo de dos","segundo de dos");
		break;
		case "tres":
			document.agregar.elemento.options[0] = new Option("Seleccione: ","");
			document.agregar.elemento.options[1] = new Option("primero de tres","primero de tres");
			document.agregar.elemento.options[2] = new Option("otro tres","otro tres");
			document.agregar.elemento.options[3] = new Option("final tres","final tres");
		break;
	}
}

El otro combo lista
Código PHP:
<select name="elemento">
      </
select

Bueno el problema es que, al formarse el list desde la funcion en codigo javascript, si selecciono por ejemplo el valor tres que tienen 4 opciones lo muestra bien, pero al seleccionar por ejemplo la opcion uno que tiene menos opciones, se quedan las de la seleccion anterior que sobrepasan al limite de la seleccion actual.

me explico:
cuatro:
primero_4
segundo_4
tercero_4
cuarto_4


pero al seleccionar uno de menos opciones muestra:
uno:
primero_1
segundo_1
tercero_4
cuarto_4

cuando deberia mostrar solo
primero_1
segundo_1

Como hago para borrar todas las opciones agregadas y que solo agregue los que corresponda?
  #2 (permalink)  
Antiguo 18/06/2006, 10:31
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 15 años, 9 meses
Puntos: 771
Hola jeanclon

Esto no tiene nada que ver con PHP, sino con JavaScript. Pero ya que pasaba por aquí... prueba con esto:

document.nombreFormu.elemento.options.length = 0;

Saludos,
  #3 (permalink)  
Antiguo 18/06/2006, 21:15
Avatar de jeanclon  
Fecha de Ingreso: mayo-2005
Mensajes: 258
Antigüedad: 12 años, 6 meses
Puntos: 2
Información

Si bueno, tienes razon es javaScript, bueno en fin encontre la solucion:


funcion javascript
Código:
 function addOpt(oCntrl, iPos, sTxt, sVal){ 
     var selOpcion=new Option(sTxt, sVal); 
     eval(oCntrl.options[iPos]=selOpcion); 
   } 

   function cambia(oCntrl){ 
   while (oCntrl.length) oCntrl.remove(0); 
    switch (document.agregar.Telemento.selectedIndex){ 
case 1: 
    addOpt(oCntrl,  0, "Seleccione: ","");
	addOpt(oCntrl,  1, "uno","uno");
	      break; 
     case 2: 
      addOpt(oCntrl,  0, "Seleccione: ","");
addOpt(oCntrl,  1, "primero_dos","primero_dos");
addOpt(oCntrl,  2, "dos_dos","dos_dos");
      break; 
	 case 3: 
      addOpt(oCntrl,  0, "Seleccione: ","");
addOpt(oCntrl,  1, "tercero_uno","Tercero_uno");
addOpt(oCntrl,  2, "tercero_dos","tercero_dos");
addOpt(oCntrl,  3, "tercero_tres","tercero_tres");
      break; 
	} 
   }
Primer select
Código PHP:
<select name="Telemento" onChange="cambia(document.agregar.elemento)">
        <
option value="" selected>Seleccione: </option>
        <
option value="Voz">Voz</option>
        <
option value="Audio">Audio</option>
        <
option value="Video">Video</option>
      </
select

segundo select
Código PHP:
<select name="elemento">
      </
select
Eso es todo, gracias, y bueno si pueden muevan esto post a javaScript.

Perdon por no colocarlo donde iba.
  #4 (permalink)  
Antiguo 21/06/2006, 22:17
Avatar de jeanclon  
Fecha de Ingreso: mayo-2005
Mensajes: 258
Antigüedad: 12 años, 6 meses
Puntos: 2
Hola de nuevo, tengo otro problema con esto de las listas dependientes, ahora necesito que el segundo select sea multiple, el problema es que para que sea multiple y funcione bien, ese select debe tener como nombre un array, osea, elemento[].

Lo malo es que si lo pongo asi no funciona los scripts, que tengo para agregar los options, alguien podria echarme una mano y ayudarme con esto?? o darme una idea??

gracias de antemano.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:49.