Foros del Web » Programando para Internet » PHP »

Select de otro Select

Estas en el tema de Select de otro Select en el foro de PHP en Foros del Web. Hola, como andan? Les comento, tengo 3 selects(Institucion, areas y Subareas). Cuando se elije una institucion, muestra todas las areas que pertenecen a esa institucion. ...
  #1 (permalink)  
Antiguo 11/11/2015, 21:38
 
Fecha de Ingreso: noviembre-2015
Mensajes: 1
Antigüedad: 8 años, 5 meses
Puntos: 0
Pregunta Select de otro Select

Hola, como andan? Les comento, tengo 3 selects(Institucion, areas y Subareas).
Cuando se elije una institucion, muestra todas las areas que pertenecen a esa institucion. El problema es que no puedo hacer lo mismo con las subareas (muestran todas las subareas que pertenecen a tal area).
Les paso el codigo.

Los select:
Código:
     <tr>
          <td height="39" align="right">Seleccione Institución  :</td>
          <td colspan="2"><select name="institucion"  onChange="slctryole(this,this.form.area)" class="box">
            <option value="N" selected  >Sin Especificar</option>
<?php     
       
                 while ($f_ins = mysql_fetch_array($r_inst))
                      {
?>
            <option value="<?php echo "i".$f_ins['id_institucion'] ?>"> <?php echo $f_ins['nombre_institucion']?></option>
            <?php
			
			          }
				
?>
	</select></td>
		  
		  </td>
        </tr>
        <tr>
		
          <td height="39" align="right">Seleccione Area  :</td>
          <td colspan="2"><select name="area" onChange="slctryole(this,this.form.subarea)" class="box">
            <option value="N" selected>Seleccione Area</option>
				
          

          </select></td>
        </tr>
		
		<tr>
          <td height="39" align="right">Seleccione Subarea  :</td>
          <td colspan="2"><select name="subarea" class="box">
            <option value="N" selected>Seleccione Subarea</option>
				
          </select></td>
        </tr>
Ahora, los javascript:
Código:
<?php
	// Generando LISTA DE areas 
	$f_area=mysql_fetch_array($r_area);
	echo "<script language='javascript' type='text/javascript'>".chr(13).chr(10);
	$varaux= "i".$f_area['id_institucion'];
	$cont=0;
	echo "var "."i".$f_area['id_institucion']."=new Array()".chr(13).chr(10);
	echo "i".$f_area['id_institucion']."[$cont] = new slctr('Seleccione Area','N')".chr(13).chr(10);
	$cont++;
	echo "i".$f_area['id_institucion']."[$cont] = new slctr('".trim($f_area['nombre_area'])."','".$f_area['id_area']."')";
	echo chr(13).chr(10);
	$cont++;
	while ($f_area=mysql_fetch_array($r_area))
  	{
		$idarea = "i".$f_area['id_institucion'];
		if ($idarea==$varaux)
			{
				$vcod= "i".$f_area['id_institucion'];
				echo "i".$f_area['id_institucion']."[$cont] = new slctr('".trim($f_area['nombre_area'])."','".$f_area['id_area']."')";
				echo chr(13).chr(10);
				$cont++;
			}
		else
			{
				$varaux= "i".$f_area['id_institucion'];
				echo "var "."i".$f_area['id_institucion']."=new Array()".chr(13).chr(10);
				$cont=0;
				echo "i".$f_area['id_institucion']."[$cont] = new slctr('Seleccione Area','N')".chr(13).chr(10);
				$cont++;
				echo "i".$f_area['id_institucion']."[$cont] = new slctr('".trim($f_area['nombre_area'])."','".$f_area['id_area']."')";
				echo chr(13).chr(10);
				$cont++;
			}
	}
	echo "</script> ".chr(13).chr(10);
?>

<script language='javascript' type='text/javascript'>
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
			}
		}
	}
}
</script>

<?php
	// Generando LISTA DE subareas 
	$f_subarea=mysql_fetch_array($r_subarea);
	echo "<script language='javascript' type='text/javascript'>".chr(13).chr(10);
	
	$varaux= "j".$f_subarea['id_area'];
	$cont=0;
	
	echo "var "."j".$f_subarea['id_area']."=new Array()".chr(13).chr(10);
	echo "j".$f_subarea['id_area']."[$cont] = new slctr('Seleccione Area','N')".chr(13).chr(10);
	$cont++;
	echo "j".$f_subarea['id_area']."[$cont] = new slctr('".trim($f_subarea['nombre_subarea'])."','".$f_subarea['id_subarea']."')";
	echo chr(13).chr(10);
	$cont++;
	while ($f_subarea=mysql_fetch_array($r_subarea))
  	{
		$idsubarea = "j".$f_subarea['id_area'];
		if ($idsubarea==$varaux)
			{
				$vcod= "j".$f_subarea['id_area'];
				echo "j".$f_subarea['id_area']."[$cont] = new slctr('".trim($f_subarea['nombre_subarea'])."','".$f_subarea['id_subarea']."')";
				echo chr(13).chr(10);
				$cont++;
			}
		else
			{
				$varaux= "j".$f_subarea['id_area'];
				echo "var "."j".$f_subarea['id_area']."=new Array()".chr(13).chr(10);
				$cont=0;
				echo "j".$f_subarea['id_area']."[$cont] = new slctr('Seleccione Area','N')".chr(13).chr(10);
				$cont++;
				echo "j".$f_subarea['id_area']."[$cont] = new slctr('".trim($f_subarea['nombre_subarea'])."','".$f_subarea['id_subarea']."')";
				echo chr(13).chr(10);
				$cont++;
			}
	}
	echo "</script> ".chr(13).chr(10);
	echo $j;
?>
  #2 (permalink)  
Antiguo 12/11/2015, 01:31
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Select de otro Select

Saludo
Pues faltó código.

Por ej, el form, o la clase javascript (slctr)

Obviando eso, funciona institución, área y subárea.

Yo emulé la info en la misma función js, del siguiente modo

Código Javascript:
Ver original
  1. function slctryole(cual,donde)
  2. {
  3. var i1=new Array()
  4. i1[0] = new Array('Seleccione Area','N')
  5. i1[1] = new Array('area1','j1')
  6. var i2=new Array()
  7. i2[0] = new Array('Seleccione Area','N')
  8. i2[1] = new Array('area2','j2')
  9.  
  10. var j1=new Array()
  11. j1[0] = new Array('Seleccione Area','N')
  12. j1[1] = new Array('subarea1','1')
  13. var j2=new Array()
  14. j2[0] = new Array('Seleccione Area','N')
  15. j2[1] = new Array('subarea2','2')
  16.  
  17.     if(cual.selectedIndex != 0)
  18.     {
  19.         donde.length=0
  20.         cual = eval(cual.value)
  21.                 for(m=0;m<cual.length;m++)
  22.              {
  23.             var nuevaOpcion = new Option(cual[m]);
  24.             donde.options[m] = nuevaOpcion;
  25.             if(cual[m].valor != null)
  26.             {
  27.                 donde.options[m].value = cual[m][1]
  28.             }
  29.             else
  30.             {
  31.                 donde.options[m].value = cual[m][1]
  32.             }
  33.         }
  34.     }
  35. }
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Etiquetas: html, javascript, select
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 14:37.