Foros del Web » Programando para Internet » PHP »

Como hacer para que el valor de un listbox quede seleccionado quede fijo

Estas en el tema de Como hacer para que el valor de un listbox quede seleccionado quede fijo en el foro de PHP en Foros del Web. Buenas! Estoy trabajando con un formulario en el que empleo un listbox para llamar el dato de un campo de una tabla con el fin ...
  #1 (permalink)  
Antiguo 08/08/2010, 17:51
 
Fecha de Ingreso: julio-2010
Mensajes: 28
Antigüedad: 13 años, 8 meses
Puntos: 0
Como hacer para que el valor de un listbox quede seleccionado quede fijo

Buenas!

Estoy trabajando con un formulario en el que empleo un listbox para llamar el dato de un campo de una tabla con el fin de hacer una actualizacion de registros de la misma tabla, hasta aqui voy bien, lo que quiero es que despues de que se ejecute el query me traiga los datos, me quede el valor seleccionado en el listbox y no en blanco como me esta sucediendo!, es decir, despues de que me arroja los datos, tengo que buscar nuevamente el dato en el listbox para iniciar la actualizacion pero pretendo evitar esto para que en el momento en que un usuario realice la actualizacion no se le dificulte buscar entre varios registros (q tal fueran 1000, se imaginan?)

Agradezco sus sugerencias!

A continuacion la forma en la que creo el listbox
Código HTML:
Ver original
  1. <select name="area" size="0" class="bottom">
  2.                   <option selected></option></selected>
  3.                   <?
  4.             $query_nombres = "SELECT area FROM area ORDER BY area ASC";
  5.             $resultado_nombres = mysql_query($query_nombres);
  6.             while($reg = mysql_fetch_array($resultado_nombres)){
  7.             $area = $reg["area"];
  8.             echo "<option>$area</option>";
  9.             }
  10.             ?>
  11.             </select>

Última edición por hazard795; 08/08/2010 a las 18:26 Razón: Optimizar la solicitud
  #2 (permalink)  
Antiguo 08/08/2010, 18:18
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Como hacer para que el valor de un listbox quede seleccionado quede fijo

querrás decir select, simplemente agrega el atributo selected="selected" a los tag option:

Código HTML:
Ver original
  1. <option  selected="selected" >opcion seleccionada</option>
  #3 (permalink)  
Antiguo 08/08/2010, 18:21
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Como hacer para que el valor de un listbox quede seleccionado quede fijo

sencillo, tan solo agrega el atributo selected en la opción que quieras mantener seleccionada...

Edito: bingo!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 09/08/2010, 15:00
 
Fecha de Ingreso: julio-2010
Mensajes: 28
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Como hacer para que el valor de un listbox quede seleccionado quede fijo

Cita:
Iniciado por maycolalvarez Ver Mensaje
querrás decir select, simplemente agrega el atributo selected="selected" a los tag option:

Código HTML:
Ver original
  1. <option  selected="selected" >opcion seleccionada</option>
Gracias por responder, pero lo que me sugieres no me funciona, porque siempre me va a aparecer seleccionada en el select la palabra "opcion seleccionada" y lo que yo quiero es que me aparezca el nombre seleccionado del select. Por ejemplo si selecciono Fulanito y le doy al boton mostrar, logicamente q me aparezca los datos o registro correspondiente a Fulanito (lo cual funciona correctamente) pero que no me deje en blanco ni con la palabra "opcion seleccionada" sino con este ultimo nombre Fulanito seleccionado para solo introducir el codigo y modificar el registro sin volver a seleccionar Fulanito. Asi integre lo que voz me sugeriste:
Código PHP:
Ver original
  1. <select name="Nombres" size="0" class="bottom">
  2. <option selected="selected">opcion seleccionada</option>
  3.                   <?
  4. $query_nombres = "SELECT Nombres FROM benefactor ORDER BY Nombres ASC";
  5. $resultado_nombres = mysql_query($query_nombres);
  6. while($reg = mysql_fetch_array($resultado_nombres))
  7. {
  8. $Nombres = $reg["Nombres"];
  9. echo "<option>$Nombres</option>";
  10. }
  11.     ?>
  12.                 </select>
  #5 (permalink)  
Antiguo 09/08/2010, 15:06
 
Fecha de Ingreso: julio-2010
Mensajes: 28
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Como hacer para que el valor de un listbox quede seleccionado quede fijo

Cita:
Iniciado por pateketrueke Ver Mensaje
sencillo, tan solo agrega el atributo selected en la opción que quieras mantener seleccionada...

Edito: bingo!!
No... porque en el select no tengo una lista de datos, sino que me trae un dato o valor segun el query o consulta que yo haga (tal y como pueden observar en el cogigo impreso en este tema), en ese orden de ideas, entonces donde le pongo el atributo... se lo debo poner pero a la variable pq esta cambia. Por tanto se genera la pregunta como incluyo el select a la variable?

Si la tienes clara y no te confundo porfa emplea el codigo que imprimi aqui mismo para q te entienda...
Gracias!
  #6 (permalink)  
Antiguo 09/08/2010, 15:36
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Como hacer para que el valor de un listbox quede seleccionado quede fijo

Código PHP:
echo '<option value="' $valor '"';
if (
$el_valor_en_la_bd == $valor) echo ' selected="selected"';
echo 
'>' $valor '</option>'
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 09/08/2010, 18:50
 
Fecha de Ingreso: julio-2010
Mensajes: 28
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Como hacer para que el valor de un listbox quede seleccionado quede fijo

Cita:
Iniciado por pateketrueke Ver Mensaje
Código PHP:
echo '<option value="' $valor '"';
if (
$el_valor_en_la_bd == $valor) echo ' selected="selected"';
echo 
'>' $valor '</option>'
Estas muy cerca, seguro es cuestion de descubrir como incluir la variable ($valor)en el option value, ya que me esta imprimiendo exactamente $valor o en mi caso particular $Nombres dentro del select aun cuando si me muestra datos diferentes de la seleccion en el mismo, es decir me muestra dos veces $Nombres en el select pero cada uno me trae registros diferentes.

Para q no te confundas yo capturo el dato de mi tabla en la b.d. con la variable $Nombres, por eso en el if esta $Nombres==$Nombres

Asi lo trabaje pero aun no funciona

Código PHP:
Ver original
  1. <select name="Nombres" size="0" class="bottom">
  2.                   <option selected="selected">&nbsp;</option>
  3.                   <?
  4. $query_nombres = "SELECT Nombres FROM benefactor ORDER BY Nombres ASC";
  5. $resultado_nombres = mysql_query($query_nombres);
  6. while($reg = mysql_fetch_array($resultado_nombres)){
  7. $Nombres = $reg["Nombres"];
  8. //echo "<option>$Nombres</option>"
  9. echo '<option value="'.$Nombres.'"';
  10. if ($Nombres==$Nombres) echo 'selected="selected"';
  11. echo '>' .$Nombres. '</option>';
  12.     ?>
  13.                 </select>
  #8 (permalink)  
Antiguo 09/08/2010, 20:17
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Como hacer para que el valor de un listbox quede seleccionado quede fijo

ya veo el problema: tienes un <option selected="selected">&nbsp;</option> al principio, quítalo, solo puedes tener uno (para selects no multiples)!!!, por eso se queda en blanco
  #9 (permalink)  
Antiguo 09/08/2010, 20:50
 
Fecha de Ingreso: julio-2010
Mensajes: 28
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Como hacer para que el valor de un listbox quede seleccionado quede fijo

Cita:
Iniciado por maycolalvarez Ver Mensaje
ya veo el problema: tienes un <option selected="selected">&nbsp;</option> al principio, quítalo, solo puedes tener uno (para selects no multiples)!!!, por eso se queda en blanco
No!... Asi me muestra el valor o dato correspondiente al primer registro almacenado en la tabla, pero lo que yo quiero es que quede fijo el valor seleccionado en el select luego de efectuar la consulta. Ejemplo si existen dos datos Perro y Gato, cuando seleccione Gato le doy a ver>> para que me muestre los datos correspondientes a este registro (filtro), pero que quede seleccionado Gato. Lo mismo para el Perro pero que me quede seleccionado Perro y no Gato.
Segun el query, se organiza por orden alfabetico, con lo que voz sugieres siempre va a quedar seleccionado Gato
  #10 (permalink)  
Antiguo 09/08/2010, 23:25
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Como hacer para que el valor de un listbox quede seleccionado quede fijo

hazard795, nosotros no debemos entender nada... al contrario!!

debes usar tu propio sentido común:
Código PHP:
$Nombres==$Nombres 
esto es completamente ridículo... obvio que siempre son el mismo valor, en ambos lados de la expresión.... ¿acaso no reflexionas o como piensas las cosas?

de verdad... el concepto es simple, y desde hace años existen temas en este foro que hablan de lo mismo... tan redundante que aburre tratar de explicar a personas que, como tú, ¿creen que nosotros somos los que no entendemos?
Código PHP:
while (/* ... */)
{
  if (
$row['valor'] == $valor_previo_seleccionado// ...

vaya ironía... ¿no crees?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 09/08/2010, 23:48
Avatar de silvanha  
Fecha de Ingreso: marzo-2006
Ubicación: En mi mundo de sueños
Mensajes: 653
Antigüedad: 18 años, 1 mes
Puntos: 65
Respuesta: Como hacer para que el valor de un listbox quede seleccionado quede fijo

Y le aseguro señor pateketrueke, que ni con eso lo entendió :P

hazard, solo analiza que estas queriendo seleccionar algo que estas sacando de la misma BD, no tienes ningún dato con que comparar... es decir para que funcione, lo que seleccionas, debes tomarlo de algún... lugar, por ejemplo cuando estas llenando un formulario, y seleccionas el pais, por primera vez, tendras ya un valor seleccionado, si por alguna razón regresas, entonces tienes el valor que sacas de la tabla con el valor seleccionado anteriormente..

Con cual estas tu comparando el "Nombres"?? ;) cuando ubiques eso, te va a salir =)
__________________
●•· No hay nada imposible..
●•· Vico-X.. ;)
  #12 (permalink)  
Antiguo 10/08/2010, 12:44
 
Fecha de Ingreso: julio-2010
Mensajes: 28
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Como hacer para que el valor de un listbox quede seleccionado quede fijo

Cita:
Iniciado por silvanha Ver Mensaje
Y le aseguro señor pateketrueke, que ni con eso lo entendió :P

hazard, solo analiza que estas queriendo seleccionar algo que estas sacando de la misma BD, no tienes ningún dato con que comparar... es decir para que funcione, lo que seleccionas, debes tomarlo de algún... lugar, por ejemplo cuando estas llenando un formulario, y seleccionas el pais, por primera vez, tendras ya un valor seleccionado, si por alguna razón regresas, entonces tienes el valor que sacas de la tabla con el valor seleccionado anteriormente..

Con cual estas tu comparando el "Nombres"?? ;) cuando ubiques eso, te va a salir =)
Saludos mis amigos. Mire antes que nada estoy agradecido por sus sugerencias (Bueno las de paketetrueke y maicoalvarez) la verdad voz silvanha no te fijaste que lo que estoy tratando de implementar es el codigo que me proporciona paketetrueke a lo que yo tengo, pero la verdad no lo entiendo!, no lo manejo (soy novato) y sin embargo vos te metes a ofender! Mejor no opines nada, este foro no es para ofender sino para colaborar! Además eso que me dices que cuando regrese de la seleccion inicial, tengo el valor que saco de la tabla, es lo que no me funciona! y por tanto estoy solicitando colaboración, si me funcionara no lo pediria, no te parece obvio?

Pido disculpas por la expresion anterior en este tema, pero aunque la voluntad de maicolalvarez es magnifica, el aporte que me dio no concordaba con mi solicitud, por eso puse ese ejemplo pero no me imagine que fueran a estallar (ni siquiera estallo el, que ironía!), de ninguna manera hago comentarios ofuscado. Entonces reitero mis disculpas y por tanto como lo dije atras si no les incomoda por favor regalenme la implementacion sobre el codigo que tengo para que tengamos un resultado satisfactorio y no vuelva a generar incoherencias por mi parte.
  #13 (permalink)  
Antiguo 10/08/2010, 12:48
 
Fecha de Ingreso: julio-2010
Mensajes: 28
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Como hacer para que el valor de un listbox quede seleccionado quede fijo

Cita:
Iniciado por pateketrueke Ver Mensaje
hazard795, nosotros no debemos entender nada... al contrario!!

debes usar tu propio sentido común:
Código PHP:
$Nombres==$Nombres 
esto es completamente ridículo... obvio que siempre son el mismo valor, en ambos lados de la expresión.... ¿acaso no reflexionas o como piensas las cosas?

de verdad... el concepto es simple, y desde hace años existen temas en este foro que hablan de lo mismo... tan redundante que aburre tratar de explicar a personas que, como tú, ¿creen que nosotros somos los que no entendemos?
Código PHP:
while (/* ... */)
{
  if (
$row['valor'] == $valor_previo_seleccionado// ...

vaya ironía... ¿no crees?
Gracias! Si no te incomoda podrias regalarme esa implementacion que sugieres sobre mi propio codigo, la verdad soy novato. Además el ejemplo que tome no fue para ofender de ninguna manera, sino para que comprendan lo que necesito que inclusive a mi me parece absurdo pero si se puede implementar se le facilitaria la actualización al usuario final.
  #14 (permalink)  
Antiguo 10/08/2010, 13:03
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Como hacer para que el valor de un listbox quede seleccionado quede fijo

Cita:
Iniciado por hazard795 Ver Mensaje
Gracias! Si no te incomoda podrias regalarme esa implementacion que sugieres sobre mi propio codigo, la verdad soy novato. Además el ejemplo que tome no fue para ofender de ninguna manera, sino para que comprendan lo que necesito que inclusive a mi me parece absurdo pero si se puede implementar se le facilitaria la actualización al usuario final.
no es molestia, pero de verdad... no se puede hacer una implementación de acuerdo a tu código... nadie es tu mono personal, que evita que te canses estudiando y resolviendo tus propios problemas...

todos fuimos novatos, pero los que verdaderamente se superan lo consiguen solos...
Código PHP:
<select name="area" size="0" class="bottom">
                  <option>&nbsp;</option></selected>
                  <?php
            $query_nombres 
"SELECT area FROM area ORDER BY area ASC";
            
$resultado_nombres mysql_query($query_nombres); 
            while(
$reg mysql_fetch_array($resultado_nombres)){ 
            
$area $reg["area"];
            if (
$area == $valor_a_comparar$sel ' selected="selected"';
            else 
$sel '';
            echo 
"<option$sel>$area</option>";
            } 
            
?>
            </select>
aquí lo que debes entender es muy sencillo: $valor_a_comparar no existe, es solo un ejemplo... vamos, ¿en base a que debe quedar un valor fijo?

bueno.. puedes decir, pues tengo un valor guardado en las cookies...

bingo!!

¿ya te diste cuenta? ...ese es tu $valor_a_comparar

y si lo piensas con calma al final no hay diferencia entre "tu código" y los ejemplos previamente dados, el concepto es exactamente el mismo...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #15 (permalink)  
Antiguo 10/08/2010, 18:04
 
Fecha de Ingreso: julio-2010
Mensajes: 28
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Como hacer para que el valor de un listbox quede seleccionado quede fijo

Cita:
Iniciado por pateketrueke Ver Mensaje
no es molestia, pero de verdad... no se puede hacer una implementación de acuerdo a tu código... nadie es tu mono personal, que evita que te canses estudiando y resolviendo tus propios problemas...

todos fuimos novatos, pero los que verdaderamente se superan lo consiguen solos...
Código PHP:
<select name="area" size="0" class="bottom">
                  <option>&nbsp;</option></selected>
                  <?php
            $query_nombres 
"SELECT area FROM area ORDER BY area ASC";
            
$resultado_nombres mysql_query($query_nombres); 
            while(
$reg mysql_fetch_array($resultado_nombres)){ 
            
$area $reg["area"];
            if (
$area == $valor_a_comparar$sel ' selected="selected"';
            else 
$sel '';
            echo 
"<option$sel>$area</option>";
            } 
            
?>
            </select>
aquí lo que debes entender es muy sencillo: $valor_a_comparar no existe, es solo un ejemplo... vamos, ¿en base a que debe quedar un valor fijo?

bueno.. puedes decir, pues tengo un valor guardado en las cookies...

bingo!!

¿ya te diste cuenta? ...ese es tu $valor_a_comparar

y si lo piensas con calma al final no hay diferencia entre "tu código" y los ejemplos previamente dados, el concepto es exactamente el mismo...
Bueno, pues tienes toda la razon, pero te cuento que he hecho lo que me sugeriste pero siempre me muestra el registro de la ultima area (que empieza por la letra W) aun cuando en el query estoy ordenado alfabeticamente en ascendente, y si le quito el orden by me muestra el primer registro, pero no se mantiene o queda fijo despues de ejecutar el query el que estoy seleccionando.
  #16 (permalink)  
Antiguo 10/08/2010, 20:52
Avatar de silvanha  
Fecha de Ingreso: marzo-2006
Ubicación: En mi mundo de sueños
Mensajes: 653
Antigüedad: 18 años, 1 mes
Puntos: 65
Respuesta: Como hacer para que el valor de un listbox quede seleccionado quede fijo

meto mi nariz por última vez XD

caray de verdad te ofendí??? =O bueno, solo por alclarar, en absoluto fue esa la intención, ojala te salga lo que necesitas =D el señor pateketrueke, es muy bueno, te orientará bien.. =)

saludos!
__________________
●•· No hay nada imposible..
●•· Vico-X.. ;)
  #17 (permalink)  
Antiguo 10/08/2010, 22:08
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Como hacer para que el valor de un listbox quede seleccionado quede fijo

hazard795, antes de agregar dicho atributo intenta comprobar los valores manualmente...

esto es, imprimiendo los valores que comparas y corroborar que sean idénticos cuando lo requieras.... sin saber que valores tienes a comparación es complicado decirte algo mas...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #18 (permalink)  
Antiguo 27/08/2010, 13:53
 
Fecha de Ingreso: julio-2010
Mensajes: 28
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Como hacer para que el valor de un listbox quede seleccionado quede fijo

Cita:
Iniciado por pateketrueke Ver Mensaje
hazard795, antes de agregar dicho atributo intenta comprobar los valores manualmente...

esto es, imprimiendo los valores que comparas y corroborar que sean idénticos cuando lo requieras.... sin saber que valores tienes a comparación es complicado decirte algo mas...
Ok..Finalmente encontre la solucion!. Para que todos podamos identificar la solicitud que hecho, estaba basada en traer el valor de un campo de un formulario en un listbox para otro formulario de edicion .Por tanto cambie la forma de capturar el valor en el listbox enviando por debajo el id de la tabla y por encima su respectivo atributo o nombre buscado de la tabla.

Gracias a todos...
Tema cerrado!

Etiquetas: fijo, listbox, quede, seleccionado
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 03:43.