Foros del Web » Programando para Internet » PHP »

Mantener la sesion en los select

Estas en el tema de Mantener la sesion en los select en el foro de PHP en Foros del Web. Amigos tengo dos grandes dudas. 1.- Tengo un formulario q valido los datos por php y cuando falta algun dato el server le envia un ...
  #1 (permalink)  
Antiguo 30/10/2009, 15:17
 
Fecha de Ingreso: septiembre-2009
Mensajes: 281
Antigüedad: 14 años, 7 meses
Puntos: 0
Pregunta Mantener la sesion en los select

Amigos tengo dos grandes dudas.

1.- Tengo un formulario q valido los datos por php y cuando falta algun dato el server le envia un mensaje y le redireciona al mismo formulario con los datos que habia llenado y los q le falta para esto manejo sesiones bien mi duda es la siguiente en todos los campos funciona menos en los select cuando pongo un año y me redirecciona la pagina me muestra todos los datos q escribio pero menos el select del año que elijio ??
Código php:
Ver original
  1. <td>  
  2. <input type="text" name="lugar" size="30" maxlength="256" onKeyPress="return validar_text(event)" value="<?php if (isset($_SESSION['lugar'])){ echo $_SESSION['lugar']; } ?>"/><br>
  3.                 </td>
  4.  
  5.                 <select name="ano" size="1">
  6.                 <option value=""> año </option>
  7.                 <option value="<?php if (isset($_SESSION['ano'])){ echo $_SESSION['ano']; } ?>">  </option>
  8.                 <option value="1975"> 1975</option>
  9.                 <option value="1976"> 1976</option>
  10.                 <option value="1977"> 1977</option>

2.- Si es q el usuario ya no llena este formulario y hace click en boton cancelar como puedo hacer para q cuando vuelva a entrar a este formulario no le aparezcan los datos que habia llenado anteriormente en la misma sesion ???
  #2 (permalink)  
Antiguo 30/10/2009, 16:06
 
Fecha de Ingreso: septiembre-2009
Mensajes: 281
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Mantener la sesion en los select

Ya no existe alguna sugerencia se los agradeceria
  #3 (permalink)  
Antiguo 30/10/2009, 17:11
 
Fecha de Ingreso: octubre-2008
Mensajes: 387
Antigüedad: 15 años, 6 meses
Puntos: 18
Respuesta: Mantener la sesion en los select

Leyendo tu codigo me faltaria ver el post del formulario para ver como asignas el valor a la sesion.

Fijate si lo podes completar un poco mas porque es dificil ayudarte

Saludos
  #4 (permalink)  
Antiguo 30/10/2009, 18:23
Avatar de luis010182  
Fecha de Ingreso: julio-2009
Ubicación: Argentina - Capital Federal
Mensajes: 382
Antigüedad: 14 años, 9 meses
Puntos: 27
Respuesta: Mantener la sesion en los select

Deberias hacer lago como esto en cada option
Código PHP:
<option value="valorAnio" <? if( $_SESSION['ano']==valorAnio ) echo 'selected' ?>>valorAnio</option>
y el segundo punto. Si realizas el proceso bien haces un unset de la varible de session
Código PHP:
unset($_SESSION) ;
#o
unset($_SESSION['var1']) ;
unset(
$_SESSION['var2']) ;
#etc 
espero haberte entedido bien
  #5 (permalink)  
Antiguo 31/10/2009, 11:15
 
Fecha de Ingreso: septiembre-2009
Mensajes: 281
Antigüedad: 14 años, 7 meses
Puntos: 0
Pregunta Respuesta: Mantener la sesion en los select

No entendi muy bien el caso de los selcy html. Mi problema es cuando algun dado no puso el usuario el servidor le vuelve a enviar el mismo formulario con los datos q lleno y los q le falta el problema pasa con lo sect. el usuario eleje un año por decir 1996 y le falta algun dato cualquiera le envia el mensaje y deberia mostrarle el año 1996 y no de nuevo año. No se si me hago entender
Código html:
Ver original
  1. <select name="ano" size="1">
  2.                 <option value=""> año </option>
  3.                 <option value="valorAnio" <? if( $_SESSION['ano']==valorAnio ) echo 'selected' ?>>valorAnio</option>
  4.                 <option value="1975"> 1975</option>
  5.                 <option value="1976"> 1976</option>
  6.                 <option value="1977"> 1977</option>
  7.                 <option value="1978"> 1978</option>
  8.                </select>

Solo si cuando el usuario lleno todo correcto inserta a la BD y elimina las variables en mi caso estas
Código php:
Ver original
  1. unset($_SESSION['nombre']);
  2.                                         unset($_SESSION['paterno']);
  3.                                         unset($_SESSION['materno']);
  4.                                         unset($_SESSION['club']);
  5.                                         unset($_SESSION['categoria']);
  6.                                         unset($_SESSION['estado']);
  7.                                         unset($_SESSION['lugar']);
  8.                                         unset($_SESSION['dia']);
  9.                                         unset($_SESSION['mes']);
  10.                                         unset($_SESSION['ano']);
  11.                                         unset($_SESSION['nombre_p']);
  12.                                         unset($_SESSION['nombre_m']);
  13.                                         unset($_SESSION['esposa']);
  14.                                         unset($_SESSION['edad']);
  15.                                         unset($_SESSION['ci']);
  16.                                         unset($_SESSION['domicilio']);

Respescto al segundo punto el usuario estaba llenando tal formulario y decide ya no llenarlo hace click en boton cancelar. Se supone que cuando vuelva a querer llenar este mismo formulario no le aparezca lo que habia llenado deberia hacer un unset($_SESSION['esposa']); de todas las varaibles al hacer cancelar no ve ??
Mi pregunta es como puedo hacer esto aqui directamente
Código html:
Ver original
  1. <input  type="button" class="btn" value="Cancelar" onClick="location.href = 'index.php?mod=jugadores&pag=listado'">

Soluciones Posibles.
1.- Al llamar a index.php?mod=jugadores&pag=listado tendria que deshabliar ahi mis variables de sesion unset
2.- Una manera directa de eliminarlas seria llamar por decir
index.php?mod=jugadores&pag=cancelar y en el script cancelar
Código php:
Ver original
  1. unset($_SESSION['nombre']);
  2.                                         unset($_SESSION['paterno']);
  3.                                         unset($_SESSION['materno']);
  4.                                         unset($_SESSION['club']);
  5.                                         unset($_SESSION['categoria']);
  6.                                         unset($_SESSION['estado']);
  7.                                         unset($_SESSION['lugar']);
  8.                                         unset($_SESSION['dia']);
  9.                                         unset($_SESSION['mes']);
  10.                                         unset($_SESSION['ano']);
  11.                         echo "<meta http-equiv=\"refresh\" content=\"3;URL=index.php?mod=jugadores&pag=listado\">\n";

Una deshabilitacion de mis variables de sesion y un direccionamiento automatico a listado los mismo que el punto 1 pero de maneta MVC ??
  #6 (permalink)  
Antiguo 31/10/2009, 14:19
 
Fecha de Ingreso: octubre-2008
Mensajes: 387
Antigüedad: 15 años, 6 meses
Puntos: 18
Respuesta: Mantener la sesion en los select

Insisto que deberias publicar el php que atiende el post del formulario, porque es ahi donde asignas los valores de la sesion y seguramente donde estas teniendo problemas. Debes estar validando primero y si esta todo bien, completas los valores de la sesion. Pero como no publicaste el archivo a mi entender mas importante es muy dificil tratar de ayudarte.

Saludos.
  #7 (permalink)  
Antiguo 01/11/2009, 09:15
 
Fecha de Ingreso: septiembre-2009
Mensajes: 281
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Mantener la sesion en los select

Gracias denica001:

Aqui esta mi modulo php de mi modulo es un poco extenso pero la parte mas importante esta aca:
Código php:
Ver original
  1. <?php
  2.     $pagina = $_GET['pag'];
  3.    
  4.     include('modulos/jugadores/jugadores.mod.php');
  5.     $MOD['jugadores'] = new Jugadores();
  6.    
  7.     switch($pagina) {
  8.         case 'insertar':
  9.          if(!empty($_SESSION['usuario_id'])||($_SESSION['usuario_nivel']==X)||($_SESSION['usuario_nivel']==X)){
  10.             include('modulos/jugadores/vistas/insertar.html.php');
  11.         } else {
  12.            echo "<center> Usted no tiene permisos para acceder </center>";
  13.         }  
  14.         break;
  15.         case 'editar':
  16.             if(!empty($_SESSION['usuario_id'])&&($_SESSION['usuario_nivel']==X)){
  17.                
  18.                 $id = intval($_GET['id']);
  19.                
  20.                 $items_jugador = $MOD['jugadores']->getJugador($id);
  21.                
  22.                 if ($items_jugador){
  23.                     $item_jugador = $items_jugador[0];
  24.                     include('modulos/jugadores/vistas/editar.html.php');
  25.                 } else {
  26.                     echo "<center>No existe el delegado con el ID indicado</center>";
  27.                 }
  28.             } else {
  29.                 echo "<center> Usted no tiene permisos </center>";
  30.             }
  31.            
  32.         break;
  33.  
  34.         case 'guardar':
  35.         include('vistas/conectar.php');
  36.        
  37.         if(!empty($_SESSION['usuario_id'])||($_SESSION['usuario_nivel']==X)||($_SESSION['usuario_nivel']==X)){
  38.             $id = intval($_POST['hdn_id']);
  39.             $nombre = $_SESSION['nombre'] = trim($_POST['nombre']);
  40.             $paterno = $_SESSION['paterno'] = trim($_POST['paterno']);
  41.             $materno = $_SESSION['materno'] = trim($_POST['materno']);
  42.             $club = $_SESSION['club'] = trim($_POST['club']);
  43.             $categoria = $_SESSION['categoria'] = trim($_POST['categoria']);
  44.             $division = trim($_POST['division']);
  45.             $liga = trim($_POST['liga']);
  46.             $nacionalidad =  $_SESSION['nacionalidad'] = trim($_POST['nacionalidad']);
  47.             $estado =  $_SESSION['estado'] = trim($_POST['estado']);
  48.             $lugar = $_SESSION['lugar'] = trim($_POST['lugar']);
  49.             $dia = $_SESSION['dia'] =  $_POST['dia'];
  50.             $mes = $_SESSION['mes'] = $_POST['mes'];
  51.             $ano = $_SESSION['ano'] = $_POST['ano'];
  52.             $fecha = "$dia/$mes/$ano";
  53.             $nombre_p = $_SESSION['nombre_p'] = trim($_POST['nombre_p']);
  54.             $nombre_m = $_SESSION['nombre_m'] = trim($_POST['nombre_m']);
  55.             $nombre_es = $_SESSION['nombre_es'] = trim($_POST['nombre_es']);
  56.             $edad = $_SESSION['edad'] = intval($_POST['edad']);
  57.             $ci = $_SESSION['ci'] =  intval($_POST['ci']);
  58.             $domicilio = $_SESSION['domicilio'] = trim($_POST['domicilio']);
  59.             $procede_club = trim($_POST['procede_club']);
  60.             $asociacion = trim($_POST['asociacion']);
  61.             $registro_fbf = intval($_POST['registro_fbf']);
  62.             $comentario = trim($_POST['comentario']);
  63.             $passwd = trim($_POST['passwd']);
  64.  
  65.             $link = Conectarse();
  66.             $sqlQueryCat = mysql_query("SELECT * FROM jugadores where registro_fbf='$registro_fbf'", $link)or die(mysql_error);
  67.             $rowCat = mysql_fetch_array($sqlQueryCat);
  68.        
  69.  
  70.                     $msg = '';
  71.                         //if (empty($id)) {
  72.                             //$msg .= 'No se especifico un ID<br>';
  73.                         //}
  74.                     if (empty($nombre)) {
  75.                         $msg .= '  <center> No se especifico un Nombre  </center><br>';
  76.                         echo "<center><meta http-equiv=\"refresh\" content=\"3;URL=index.php?mod=jugadores&pag=insertar\">\n </center>";
  77.                         }
  78.                     if (empty($club)) {
  79.                         $msg .= '  <center> No se especifico el club  </center><br>';
  80.                     }
  81.                     if (empty($categoria)) {
  82.                         $msg .= '  <center> No se especifico una categoria  </center><br>';
  83.                         echo "<center><meta http-equiv=\"refresh\" content=\"3;URL=index.php?mod=jugadores&pag=insertar\">\n </center>";
  84.                     }
  85.                     if (empty($nacionalidad)) {
  86.                         $msg .= '  <center> No se especifico su Nacionalidad  </center><br>';
  87.                         echo "<center><meta http-equiv=\"refresh\" content=\"3;URL=index.php?mod=jugadores&pag=insertar\">\n </center>";
  88.                     }
  89.                     if (empty($lugar)) {
  90.                         $msg .= '  <center> No se especifico el lugar de Nacimiento del Jugador  </center> <br>';
  91.                         echo "<center><meta http-equiv=\"refresh\" content=\"3;URL=index.php?mod=jugadores&pag=insertar\">\n </center>";
  92.                     }
  93.                     if (empty($dia)) {
  94.                         $msg .= '  <center> No se especifico el dia de Nacimiento del Jugador  </center><br>';
  95.                         echo "<center><meta http-equiv=\"refresh\" content=\"3;URL=index.php?mod=jugadores&pag=insertar\">\n </center>";
  96.                     }
  97.                     if (empty($mes)) {
  98.                         $msg .= '  <center> No se especifico el mes de Nacimiento del Jugador  </center><br>';
  99.                         echo "<center><meta http-equiv=\"refresh\" content=\"3;URL=index.php?mod=jugadores&pag=insertar\">\n </center>";
  100.                     }
  101.                     if (empty($ano)) {
  102.                         $msg .= '  <center> No se especifico el año de Nacimiento del Jugador  </center><br>';
  103.                         echo "<center><meta http-equiv=\"refresh\" content=\"3;URL=index.php?mod=jugadores&pag=insertar\">\n </center>";
  104.                     }  
  105.                     if (empty($edad)) {
  106.                         $msg .= '  <center>No se especifico sus edad Actual  </center><br>';
  107.                         echo "<center><meta http-equiv=\"refresh\" content=\"3;URL=index.php?mod=jugadores&pag=insertar\">\n </center>";
  108.                     }
  109.                     //if (empty($domicilio)) {
  110.                     //  $msg .= ' <center> No se especifico su direccion  Actual donde vive </center> <br>';
  111.                     //  echo "<center><meta http-equiv=\"refresh\" content=\"3;URL=index.php?mod=jugadores&pag=insertar\">\n </center>";
  112.                     //}
  113.                                
  114.                   if(empty($msg)) {
  115.                    
  116.                                 if (empty($id)) {
  117.                
  118.                                    
  119.                                 if ($registro_fbf != $rowCat['registro_fbf']){
  120.                                 if ($MOD['jugadores']->setJugador($nombre,$paterno,$materno,$club,$categoria,$division,$liga,$nacionalidad,$estado,$lugar,$fecha,$nombre_p,$nombre_m,$nombre_es,$edad,$ci,$domicilio,$procede_club,$asociacion,$registro_fbf,$comentario,$passwd)){
  121.                         echo "<center> <img src=modulos/imagenes/cargando.gif alt=cargando/></center>";
  122.                         echo "<center>Registro exitoso!. Espere unos instantes</center>";
  123.                        
  124.                                         unset($_SESSION['nombre']);
  125.                                         unset($_SESSION['paterno']);
  126.                                         unset($_SESSION['materno']);
  127.                                         unset($_SESSION['club']);
  128.                                         unset($_SESSION['categoria']);
  129.                                         unset($_SESSION['estado']);
  130.                                         unset($_SESSION['lugar']);
  131.                                         unset($_SESSION['dia']);
  132.                                         unset($_SESSION['mes']);
  133.                                         unset($_SESSION['ano']);
  134.                                         unset($_SESSION['nombre_p']);
  135.                                         unset($_SESSION['nombre_m']);
  136.                                         unset($_SESSION['esposa']);
  137.                                         unset($_SESSION['edad']);
  138.                                         unset($_SESSION['ci']);
  139.                                         unset($_SESSION['domicilio']);
  140.                         echo "<meta http-equiv=\"refresh\" content=\"3;URL=index.php?mod=jugadores&pag=listado\">\n";
  141.                                 } else {
  142.                                     echo "El registro no fue exitoso";
  143.                                 }
  144.                                 }
  145.                                 else{
  146.                                   echo "El registro Generado y que usted no lo comprobo es Identico lo sentimos vuelva a generar otro ";
  147.                                   echo "<meta http-equiv=\"refresh\" content=\"3;URL=index.php?mod=jugadores&pag=insertar\">\n";
  148.                                 }
  149.                
  150.                                
  151.                   } else {
  152.                                 if ($MOD['jugadores']->setJugador($nombre,$paterno,$materno,$club,$categoria,$division,$liga,$nacionalidad,$estado,$lugar,$fecha,$nombre_p,$nombre_m,$nombre_es,$edad,$ci,$domicilio,$procede_club,$asociacion,$registro_fbf,$comentario,$passwd,$id)){
  153.                         echo "<center> <img src=modulos/imagenes/cargando.gif alt=cargando/></center>";
  154.                         echo "<center>Actualización exitosa!. Espere unos instantes</center>";
  155.                        
  156.                                         unset($_SESSION['nombre']);
  157.                                         unset($_SESSION['paterno']);
  158.                                         unset($_SESSION['materno']);
  159.                                         unset($_SESSION['club']);
  160.                                         unset($_SESSION['categoria']);
  161.                                         unset($_SESSION['estado']);
  162.                                         unset($_SESSION['lugar']);
  163.                                         unset($_SESSION['dia']);
  164.                                         unset($_SESSION['mes']);
  165.                                         unset($_SESSION['ano']);
  166.                                         unset($_SESSION['nombre_p']);
  167.                                         unset($_SESSION['nombre_m']);
  168.                                         unset($_SESSION['esposa']);
  169.                                         unset($_SESSION['edad']);
  170.                                         unset($_SESSION['ci']);
  171.                                         unset($_SESSION['domicilio']);
  172.                    
  173.                         echo "<meta http-equiv=\"refresh\" content=\"3;URL=index.php?mod=jugadores&pag=listado\">\n";
  174.                                 } else {
  175.                                     echo "<center>La actualización no fue exitosa</center>";
  176.                                 }
  177.                     }
  178.                 } else {
  179.                           echo "<center>Los siguientes campos son erroneos: </center><br><br>" . $msg;
  180.           }
  181.          
  182.     } else {
  183.     echo " <center> Usted no tiene permisos </center>";
  184.     }
  185.     break;
  186.     case 'listado':
  187.         default:
  188.             $items_jugador = $MOD['jugadores']->getJugadores();
  189.             if(!empty($_SESSION['usuario_id'])&&($_SESSION['usuario_nivel']==X)){
  190.                 include('modulos/jugadores/vistas/listado.html.php');
  191.             }
  192.             else
  193.             {  
  194.                 if(!empty($_SESSION['usuario_id'])&&($_SESSION['usuario_nivel']==X)){
  195.                 include('modulos/jugadores/vistas/listado_visitante.html.php');
  196.                 }
  197.             }
  198.     }
  199. ?>

Espero mi consejo en problema como ya repeti es q al volver al formulario ya llenado algunos datos le nuestra esos mismo con lo q le falta por llenar pero cuando elijio algun dato del select estos al volver al formulario me muestra los datos por defecto
  #8 (permalink)  
Antiguo 02/11/2009, 08:22
 
Fecha de Ingreso: septiembre-2009
Mensajes: 281
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Mantener la sesion en los select

Nadie tiene una sugerencia a mi problema ????
  #9 (permalink)  
Antiguo 02/11/2009, 16:42
 
Fecha de Ingreso: septiembre-2009
Mensajes: 281
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Mantener la sesion en los select

¿Como mantener la session de un elemento elegido en un select html ?
Que al volver a la misma pagina me muestre el elemento elegido y no el por defecto que necesito saber mas o menos como se debe hacer para mi buscador q es casi con puros select

Alguien podria ayudarmen por favor se lo agradeceria mucho |||
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 20:24.