Foros del Web » Programando para Internet » PHP »

como mantengo variable de un select php ??

Estas en el tema de como mantengo variable de un select php ?? en el foro de PHP en Foros del Web. hola emm pues he leeido mucho pero no encuentro lo que quiero emm como consigo con puro php conservar el valor de un select luego ...
  #1 (permalink)  
Antiguo 14/05/2011, 11:46
Avatar de Markgus  
Fecha de Ingreso: junio-2010
Mensajes: 152
Antigüedad: 13 años, 10 meses
Puntos: 5
como mantengo variable de un select php ??

hola emm pues he leeido mucho pero no encuentro lo que quiero emm como consigo con puro php conservar el valor de un select luego de un submit?


Código PHP:
<?php 

$sSQL
="SELECT * FROM tipo_sistemas "
$result=mysql_query($sSQL); 
echo 
' <SELECT name="id_sistema[]">'
echo 
'<option value=$seleccion>------------</option>';
while (
$row=mysql_fetch_array($result)) 

echo 
'<option>'.$row["SISTEMA"]; 

echo 
'</select>'
mysql_free_result($result)


 
?>
intente esto pero no funciono
$sistema =$_POST['id_sistema'];//nombre del select id_sistema

porque requiero después guardar este valor en una session
$sistema = $_SESSION['id_sistema'];

alguien tiene un ejemplo simple, requiero conservar el valor del select para poder hacer una consulta pero al actualizar no se mantiene, no se si tenga que ver que cuando envio el sumbit el resultado me lo trae otro .php pero pues los text si me los conserva con
value="<?=$_POST['valor']?>
  #2 (permalink)  
Antiguo 14/05/2011, 12:42
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 58
Respuesta: como mantengo variable de un select php ??

En todo caso sería así:

$_SESSION['id_sistema'] = $sistema;

Con eso guardas el resultado en la variable de sesión y así no la pierdes.

EDITO:
Ahora que vuelvo a ver, esto está mal:

echo '<option value=$seleccion>------------</option>';

tendría que ser:

Código PHP:
echo "<option value='".$seleccion."'>------------</option>"
  #3 (permalink)  
Antiguo 16/05/2011, 07:48
Avatar de Markgus  
Fecha de Ingreso: junio-2010
Mensajes: 152
Antigüedad: 13 años, 10 meses
Puntos: 5
Respuesta: como mantengo variable de un select php ??

gracias Nexus10 pero no al enviar por submit no se mantiene el valor del select se deselecciona valga la redundancia, y pues necesito que se quede la selección
  #4 (permalink)  
Antiguo 16/05/2011, 08:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: como mantengo variable de un select php ??

En tu while verifica el valor que quieres seleccionar usando un if() y posteriormente le agregas el atributo selected al <option> que quieras seleccionar, por ejemplo:
Código PHP:
Ver original
  1. while (/* */) {
  2.      if ($valor_que_quiero_seleccionar == $valor_del_loop) {
  3.              echo "<option selected=\"selected\" value=\"$valor_del_loop\">$valor_del_loop</option>"
  4.      } else {
  5.              echo "<option value=\"$valor_del_loop\">$valor_del_loop</option>"
  6.      }
  7. }

Saludos.
  #5 (permalink)  
Antiguo 16/05/2011, 12:04
Avatar de Markgus  
Fecha de Ingreso: junio-2010
Mensajes: 152
Antigüedad: 13 años, 10 meses
Puntos: 5
Respuesta: como mantengo variable de un select php ??

mm pues por lo que entendí hice esto pero sigue sin funcionar,no se queda la seleccion al darle al submit, lo que pasa es que yo muestro el resultado de la consulta que viene de otra pagina con un include para que se muestra en la misma no se si esto influya o no hice bien el select

dejo el código que tengo, los text si me los conserva
Código PHP:
<?
session_start
();
include(
"conexion.php");

?>
<html>
<head>

<title>..::::..</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" >
<link rel="stylesheet" type="text/css" media="all" href="calendario/calendar-win2k-cold-1.css" title="win2k-cold-1" />
<script type="text/javascript" src="calendario/calendar.js"></script>
<script type="text/javascript" src="calendario/calendar-es.js"></script>
<script type="text/javascript" src="calendario/calendar-setup.js"></script>
<script type="text/javascript" src="ajax2.js"></script>
<script type="text/javascript">

</head>
<body>
<div>
<?php  

/*
En tu while verifica el valor que quieres seleccionar usando un if() 
y posteriormente le agregas el atributo selected al <option> que quieras seleccionar, por ejemplo:
*/

$sSQL="SELECT * FROM tipo_sistemas ";  

$result=mysql_query($sSQL);  


echo 
" <SELECT name='id_sistema'>";  
while (
$row mysql_fetch_array($result)) {
     if (
$row['SISTEMA'] == $row['id_sistema']) {
             echo 
"<option selected=\"selected\" value=\'".$row['id_sistema']."'>".$row['SISTEMA']."</option>";
     } else {
             echo 
"<option value=\'".$row['id_sistema']."'>".$row['SISTEMA']."</option>";
     }

}
echo 
"</select>"
mysql_free_result($result); 
//$sistema =$_POST['id_sistema'];
 
?>
 <form name="form1" method="post" action="<?php echo $PHP_SELF;?>">
  <label>
<p>&nbsp;</p>
  <div align="left">
<h1>Busqueda Entre Fechas</h1>
    <table width="758" height="58">
      <tr>
        <th width="86" scope="col">Desde</th>
        <th width="199" scope="col"><input type="text" name="desdeF" id = "desdeF"  value="<?=$_POST['desdeF']?>" > <img src="img/calendar.gif" id="btn_desde" alt="calendario" align="texttop"/> 
         <script type="text/javascript">
                Calendar.setup(
                {
                inputField : "desdeF", // ID of the input field
                            showsTime      :    true, 
                ifFormat : "%Y-%m-%d %I:%M:%S ", // the date format
                button : "btn_desde" // ID of the button
                }
                );
            </script></th>
   <th width="86" scope="col">Hasta</th>
        <th width="199" scope="col"><input type="text" name="hastaF" id = "hastaF" value="<?=$_POST['hastaF']?>" > <img src="img/calendar.gif" id="btn_hasta" alt="calendario" align="texttop"/> 
         <script type="text/javascript">
                Calendar.setup(
                {
                inputField : "hastaF", // ID of the input field
                ifFormat : "%Y-%m-%d %I:%M:%S", // the date format
                            showsTime      :    true, 
                button : "btn_hasta" // ID of the button
                }
                );
            </script></th>     
    <th width="158" scope="col"><input type="submit" name="Submit" value="Buscar"></th>
      </tr>
    </table>
 </label>
</form>
</div>

<?php
    
if ((isset($_POST['desdeF'])) && (strlen($_POST['hastaF'])) || isset($_GET['pos']) || isset($_GET['ord'])){
        if (
$_POST['desdeF']!="" ){
        
$_SESSION['desdeF']=$_POST['desdeF'];
              
$_SESSION['hastaF']=$_POST['hastaF'];
           
//    $_SESSION["sistemas"]=$_POST['id_sistema'];
        
}
    include(
"buscarFechas.php");
       
    }else{ if (isset(
$_POST['desdeF'])){echo '<p class="info">Debe de poner las 2 fechas</p>';}}
?>
</body>
</html>
  #6 (permalink)  
Antiguo 16/05/2011, 13:29
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 58
Respuesta: como mantengo variable de un select php ??

Hola Markgus.

El error está aquí:

if ($row['SISTEMA'] == $row['id_sistema'])

Una de las dos variables tiene que ser el option que seleccionaste y enviaste con el formulario, cuyo valor está en la variable $_POST. Supongo que será la segunda:

if ($row['SISTEMA'] == $_POST['id_sistema'])

¿Entiendes?. Si no es esa variable, cámbiala como sea conveniente.
  #7 (permalink)  
Antiguo 16/05/2011, 14:41
Avatar de Markgus  
Fecha de Ingreso: junio-2010
Mensajes: 152
Antigüedad: 13 años, 10 meses
Puntos: 5
Respuesta: como mantengo variable de un select php ??

Cita:
Iniciado por Nexus10 Ver Mensaje
El error está aquí:
if ($row['SISTEMA'] == $_POST['id_sistema'])
No ya intente así y tampoco se me mantiene el select cuando le doy al submit
  #8 (permalink)  
Antiguo 16/05/2011, 15:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: como mantengo variable de un select php ??

Eso es porque en el código que expones el <select> esta fuera de tu etiqueta <form> por eso nunca se va a enviar junto con las demás variables.

Para que un control se pueda enviar es forzoso que estos esten dentro de la etiqueta <form>.

Saludos.
  #9 (permalink)  
Antiguo 16/05/2011, 16:19
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 58
Respuesta: como mantengo variable de un select php ??

Cita:
Iniciado por GatorV Ver Mensaje
Eso es porque en el código que expones el <select> esta fuera de tu etiqueta <form> por eso nunca se va a enviar junto con las demás variables.

Para que un control se pueda enviar es forzoso que estos esten dentro de la etiqueta <form>.

Saludos.
¡Joé, es verdad! No me di cuenta de eso XD.

De todas formas, lo que yo te he puesto también es correcto, (creo)
  #10 (permalink)  
Antiguo 16/05/2011, 17:02
Avatar de Markgus  
Fecha de Ingreso: junio-2010
Mensajes: 152
Antigüedad: 13 años, 10 meses
Puntos: 5
Respuesta: como mantengo variable de un select php ??

ya hasta me da pena postear pero pues sigue sin salir ya lo puse dentro del form pero creo que escribi mal el selcet o no se si influya lo que les comentaba que traia los resultados en un include de otro php pero no creo que sea esto xq los de los text si funcionan asi que lo mas seguro esque estoy escribiendo mal el select o de plano no se :s


Código HTML:
<form name="form1" method="post" action="<?php echo $PHP_SELF;?>">

<SELECT name='id_sistema'>   

<?php   


$sSQL="SELECT * FROM tipo_sistemas ";   

$result=mysql_query($sSQL);   



while ($row = mysql_fetch_array($result)) { 
     if ($row['SISTEMA'] == $_POST['id_sistema']) { 
             echo "<option selected=\"selected\" value=\'".$row['id_sistema']."'>".$row['SISTEMA']."</option>"; 
     } else { 
             echo "<option value=\'".$row['id_sistema']."'>".$row['SISTEMA']."</option>"; 
     } 

} 

mysql_free_result($result);  
?>
</select> 

<label>
<p>&nbsp;</p>
  <div align="left">
<h1>Busqueda Entre Fechas</h1>
    <table width="758" height="58">
      <tr>
        <th width="86" scope="col">Desde</th>
        <th width="199" scope="col"><input type="text" name="desdeF" id = "desdeF"  value="<?=$_POST['desdeF']?>" > <img src="img/calendar.gif" id="btn_desde" alt="calendario" align="texttop"/> 
         <script type="text/javascript">
				Calendar.setup(
				{
				inputField : "desdeF", // ID of the input field
                            showsTime      :    true, 
				ifFormat : "%Y-%m-%d %I:%M:%S ", // the date format
				button : "btn_desde" // ID of the button
				}
				);
			</script></th>
   <th width="86" scope="col">Hasta</th>
        <th width="199" scope="col"><input type="text" name="hastaF" id = "hastaF" value="<?=$_POST['hastaF']?>" > <img src="img/calendar.gif" id="btn_hasta" alt="calendario" align="texttop"/> 
         <script type="text/javascript">
				Calendar.setup(
				{
				inputField : "hastaF", // ID of the input field
				ifFormat : "%Y-%m-%d %I:%M:%S", // the date format
                            showsTime      :    true, 
				button : "btn_hasta" // ID of the button
				}
				);
			</script></th>     


        <th width="158" scope="col"><input type="submit" name="Submit" value="Buscar"></th>
      </tr>
    </table>
   

  </label>
</form> 
  #11 (permalink)  
Antiguo 16/05/2011, 17:06
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: como mantengo variable de un select php ??

si quieres que un combo mantenga su valor:

Código PHP:
<SELECT name="miselect">
<?php
while ($row=mysql_fetch_array($result)){  
  echo 
'<option value="'.$row["SISTEMA"].'"';
  if(
$_POST["miselect"]==$row["SISTEMA"]) echo " selected"//con el espacio antes de "selected"
  
echo '>'.$row["SISTEMA"].'</option>';   
}
?>
</select>
no te compliques tanto, lo primero es que debes darle valores a cada <option>, luego compara cada valor con los valores de tu consulta sql y si son iguales imprimes " selected" que significa que el elemento esta seleccionado
__________________
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
  #12 (permalink)  
Antiguo 17/05/2011, 03:28
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 58
Respuesta: como mantengo variable de un select php ??

Una pregunta Markgus.
¿Por qué haces esta comparación en el if?

if ($row['SISTEMA'] == $_POST['id_sistema'])

Lo que se envía en la variable $_POST al enviar el formulario es el VALUE de los option

Si haces esa comparación en el if, en los option tendrás que poner $row['SISTEMA'], pero en cambio estás poniendo $row['id_sistema']. En el value tendrás que poner lo mismo que pongas en el if.

Tu error viene de ahí. Corrige eso a ver si ahora te funciona.

Un saludo.
  #13 (permalink)  
Antiguo 17/05/2011, 07:27
Avatar de Markgus  
Fecha de Ingreso: junio-2010
Mensajes: 152
Antigüedad: 13 años, 10 meses
Puntos: 5
Respuesta: como mantengo variable de un select php ??

ya se pudo, gracias a todos y pues lo que quería comparar era eso el id del select que le había puesto 'id_sistema' con el post del campo 'id_sistema' y me mostrara en el select el campo 'SISTEMA' que es de donde viene el nombre ya con tanto dolor de cabeza me andaba confundiendo y andaba poniendo al reves todo :s: mil gracias a stramin mas claro ni el agua en serio mil gracias a todos por su ayuda GatorV, y Nexus10 buen karma para todos hermanos

Etiquetas: select, 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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 11:20.