Foros del Web » Programando para Internet » PHP »

imprimir una variable en un select

Estas en el tema de imprimir una variable en un select en el foro de PHP en Foros del Web. Hola compañeros un pequeño favor, necesito saber como hacer que al dar click en submit en un formulario y haiga algun error sobre x campo ...
  #1 (permalink)  
Antiguo 15/06/2010, 17:14
Avatar de wiltoncb  
Fecha de Ingreso: abril-2010
Ubicación: villavicencio Colombia
Mensajes: 51
Antigüedad: 14 años
Puntos: 0
imprimir una variable en un select

Hola compañeros un pequeño favor,
necesito saber como hacer que al dar click en submit en un formulario y haiga algun error sobre x campo pueda hacer que PERMANEZCA UN DATO SELECCIONADO EN UN <select>.
Para un input lo que hago es imprimir la varible que tome con el method post en el value del input algo asi
value="<?=$valor;?>"
y asi no tienen que volver a escribir en ese campo mientras muestro mensajes de error validando el formulario.

Entonces quiero saber que metodo se utiliza para que no se pierda el dato seleccionado en un <select> en caso de haber errores en otros campos del formulario. AGRADESCO LA AYUDA

Última edición por wiltoncb; 15/06/2010 a las 17:21
  #2 (permalink)  
Antiguo 15/06/2010, 17:25
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: imprimir una variable en un select

Puedes almacenar los datos en una tabla de la base de datos y luego en una consulta, con un bucle (while, for, etc) recorres la consulta, muestras los datos. Al final con una condición puedes mostrar el dato que seleccionó. Algo así
Código PHP:
Ver original
  1. <?php
  2. while($row = mysql_fetch_assoc($consulta)){
  3.     $s = ($valor == $row['opciones_del_select'] ? 'selected="selected"' : '');
  4.     echo "<option value='" . $row['opciones_del_select'] . "' " . $s . ">" . $row['opciones_del_select'] . "</option>";
  5. }
__________________
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 15/06/2010, 17:39
Avatar de wiltoncb  
Fecha de Ingreso: abril-2010
Ubicación: villavicencio Colombia
Mensajes: 51
Antigüedad: 14 años
Puntos: 0
Respuesta: imprimir una variable en un select

No hay otra forma mas sencilla de hacerlo sin necesidad de utilizar la bd
  #4 (permalink)  
Antiguo 15/06/2010, 19:55
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: imprimir una variable en un select

Podrias probar esto analizarlo y ver si te puede servir. Es todo un solo codigo.

Debes crear un archivo php para probarlo.

Lee los comentarios del script.

Código PHP:



<?php
session_start
();

//si el boton no fue precionado y algun select seleccionado
if(isset($_POST['genero']) != "" && !isset($_POST['clik'])){
$_SESSION['ses_select']=$_POST['genero'];
}
$s=$_SESSION['ses_select'];
echo 
"Seleccionado: ".$s;
?>


<form action="" method="post">
<select name="genero" onChange="this.form.submit()">
<option value=""></option>
<option value="valor1" <?=($s == "valor1") ? "selected=selected"""?> >Valor1</option> 
<option value="valor2" <?=($s == "valor2") ? "selected=selected"""?> >Valor2</option> 
<option value="valor3" <?=($s == "valor3") ? "selected=selected"""?> >Valor3</option> 
<option value="valor4" <?=($s == "valor4") ? "selected=selected"""?> >Valor4</option> 
</select>
<br /><input type="submit" name="clik" value="Enviar">
</form>


<?php
//luego si se oprime el boton, recien se envian los valores
//y el select se conserba en lo que se ha seleccionado
if(isset($_POST['clik']) && isset($_POST['genero'])){
echo 
"Valor enviado: ".$_POST['genero'];

//Esta variable de sesion puede ser vaciada una vez que fue usada y  enviado el formulario
$_SESSION['ses_select']='';
}
?>

Esto es un condicional ternario embebido en html. Hara que si se cumple tal condicion, ese select aparezca seleccionado.

<?=($s == "valor1") ? "selected=selected": ""?>


Suerte...!
  #5 (permalink)  
Antiguo 16/06/2010, 16:42
Avatar de wiltoncb  
Fecha de Ingreso: abril-2010
Ubicación: villavicencio Colombia
Mensajes: 51
Antigüedad: 14 años
Puntos: 0
Respuesta: imprimir una variable en un select

ya encontre como hacerlo de una forma mas sencilla aunque un codigo larguito pero bueno de todos modos les agradezco la ayuda

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.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:12.