Foros del Web » Programando para Internet » PHP »

No perder variables al refrescar

Estas en el tema de No perder variables al refrescar en el foro de PHP en Foros del Web. Buenas tardes, me encaragaron la siguiente tarea, realizar tres listbox, que dependiendo de la opcion de 1, se genere el 2 y finalmente el 3 ...
  #1 (permalink)  
Antiguo 17/05/2012, 16:54
 
Fecha de Ingreso: abril-2012
Mensajes: 65
Antigüedad: 12 años
Puntos: 0
No perder variables al refrescar

Buenas tardes, me encaragaron la siguiente tarea, realizar tres listbox, que dependiendo de la opcion de 1, se genere el 2 y finalmente el 3 con las variables de el 1 y 2

Puedo pasar de un select a otro, pero al tercero, pierdo la variable del primero!

Primer Listbox


Segundo Listbox


Tercer Listbox


EN EL TERCERO PIERDO LA PRIMERA VARIABLE :S

Código PHP:
<?php

// conecto a la bd
$conn mysql_connect("172.17.107.23","root","");
mysql_select_db("control_carpetas");

$re=mysql_query("SELECT * FROM tg_tipactividad");

//VARIABLES

$tip_actividad$_GET['tip_actividad'];
$tip_subtipactividad $_GET['tip_subtipactividad'];

//PRIMERA A SEGUNDA CASCADA
if (isset($tip_actividad) || isset($tip_subtipactividad)) { 
 
 
 
$re1 mysql_query ("SELECT * 
 FROM tg_subtipactividad 
 WHERE tg_subtipactividad.tip_actividad = "
.$tip_actividad."");
 
//Glosa del PRIMER select
 
$glosa mysql_fetch_array ($re);

// SSEGUNDA A TERCERA CASCADA
        
$re2=mysql_query("SELECT * FROM tg_subtipactividad");
 
         
$re3 mysql_query ("select * from tg_subsubtipactividad where tg_subsubtipactividad.tip_actividad =".$tip_actividad." and tg_subsubtipactividad.tip_subtipactividad = ".$tip_subtipactividad."");
 
        
//Glosa del SEGUNDO select
         
$glosa2 mysql_fetch_array ($re2);

         


 }else{
//Al principio mostrar seleccionar luego mantendra la glosa del primer listbox     
 
$glosa['gls_tipactividad'] = 'Seleccione Actividad';    
 }

    

//flags 
echo "Variable gls_tipactividad: <font color='#FF0000'> ".$glosa['gls_tipactividad']."</font><BR>";
echo 
"Variable 1 tip_actividad: <font color='#FF0000'>".$tip_actividad."</font><BR>";
echo 
"Variable 2 tg_subtipactividad: <font color='#FF0000'>".$tip_subtipactividad."</font><BR>";

$b =& $tip_actividad;
echo 
$b;




echo 
"<form action='' method='GET' name='form1'>";
?>

<!-- Primer List box -->
<select name="tip_actividad" size="1" id="tip_actividad" onChange="form1.submit()" style="width:200px">

<!-- Mantengo la Glosa despues de seleccionada -->
<option value="0" selected="selected"><?php echo @$glosa['gls_tipactividad']; ?></option>

<?php  while ($n1=mysql_fetch_array($re)) {
    
    echo 
"<option value='".$n1['tip_actividad']."'> ".$n1['gls_tipactividad']."</option>";
}

?>

</option>
</select>

<!-- Segundo Listbox -->
<select name="tip_subtipactividad" size="1" id="tip_subtipactividad"  onChange="form1.submit()" style="width:200px">

<!-- Mantengo la Glosa despues de seleccionada -->
<option value="0" selected="selected"><?php echo @$glosa2['gls_subtipactividad']; ?></option>
<?php  


while ($n2=mysql_fetch_array($re1)) {
    
    echo 
"<option value='".$n2['tip_subtipactividad']."'>".$n2['gls_subtipactividad']."</option>";
}


?>

<?php   echo " <input name='actividad' type='hidden' value=".$tip_actividad.">"?>
</select>

<!-- Tercer Listbox -->
<select name="tip_subsubtipactividad" size="1" id="tip_subsubtipactividad"  style="width:200px">

<?php  


while ($n3=mysql_fetch_array($re3)) {
    
    echo 
"<option value='".$n3['tip_subsubtipactividad']."'>".$n3['gls_tipsubsubtipactividad']."</option>";
}


?>


</select>

</form>
ALGUIEN?
  #2 (permalink)  
Antiguo 17/05/2012, 17:14
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: No perder variables al refrescar

Eso ya no se controla a través de PHP, sino de javascript, ya que tienes que general el contenido de los demas desplegables. Puedes hacer usando
Código Javascript:
Ver original
  1. window.onload = function(){
  2.   // funciones
  3. }
Y ahí colocar los datos de lo que se debe mostrar en cada uno de los formularios que tomaste.

Aunque pensándolo bien puedes lograrlo con PHP también pero debes hacer una consulta en cada uno, para que traiga el resultado de lo que quieres.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 18/05/2012, 07:46
 
Fecha de Ingreso: abril-2012
Mensajes: 65
Antigüedad: 12 años
Puntos: 0
Respuesta: No perder variables al refrescar

Gracias, precisamente preguntaba como lo podia hacer solo mediante PHP
  #4 (permalink)  
Antiguo 18/05/2012, 08:01
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: No perder variables al refrescar

Se puede, para mantener el valor solo debes hacer que vuelva a quedar seleccionado, para eso reemplaza esta linea:

echo "<option value='".$n1['tip_actividad']."'> ".$n1['gls_tipactividad']."</option>";

por estas 3

echo "<option value='".$n1['tip_actividad']."'";
if($n1['tip_actividad']==$_GET['tip_actividad']) echo " selected";
echo "> ".$n1['gls_tipactividad']."</option>";

Luego si quieres puedes también hacer lo mismo con la segunda cascada
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #5 (permalink)  
Antiguo 18/05/2012, 08:09
 
Fecha de Ingreso: abril-2012
Mensajes: 65
Antigüedad: 12 años
Puntos: 0
Respuesta: No perder variables al refrescar

Cita:
Iniciado por stramin Ver Mensaje
Se puede, para mantener el valor solo debes hacer que vuelva a quedar seleccionado, para eso reemplaza esta linea:

echo "<option value='".$n1['tip_actividad']."'> ".$n1['gls_tipactividad']."</option>";

por estas 3

echo "<option value='".$n1['tip_actividad']."'";
if($n1['tip_actividad']==$_GET['tip_actividad']) echo " selected";
echo "> ".$n1['gls_tipactividad']."</option>";

Luego si quieres puedes también hacer lo mismo con la segunda cascada
Increible Stramin, muchas gracias, me pase horas tratando de dar con ese codigo, ya le estaba aplicando jscript, eres un genio viejo.

gracias!
  #6 (permalink)  
Antiguo 18/05/2012, 08:51
 
Fecha de Ingreso: marzo-2011
Mensajes: 13
Antigüedad: 13 años, 1 mes
Puntos: 4
Respuesta: No perder variables al refrescar

aun mejor


echo '<option value="'.$n1['tip_actividad'].'" ',($n1['tip_actividad']==$_GET['tip_actividad']) ? 'selected':'','>'.$n1['gls_tipactividad'].'</option>';
  #7 (permalink)  
Antiguo 18/05/2012, 15:24
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: No perder variables al refrescar

EXCELENTE!

no se me habría ocurrido nunca XD
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D

Etiquetas: mysql, perder, refrescar, sql, variables
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 06:42.