Foros del Web » Programando para Internet » PHP »

Select html preseleccionado según consulta

Estas en el tema de Select html preseleccionado según consulta en el foro de PHP en Foros del Web. Hola, no logro dar con la solución al siguiente problema: Tengo un formulario y requiero que aparezca en cada campo la información que ya está ...
  #1 (permalink)  
Antiguo 08/11/2010, 10:06
 
Fecha de Ingreso: noviembre-2010
Mensajes: 4
Antigüedad: 10 años, 6 meses
Puntos: 0
Exclamación Select html preseleccionado según consulta

Hola, no logro dar con la solución al siguiente problema:

Tengo un formulario y requiero que aparezca en cada campo la información que ya está en la base de datos, entonces guardo en una variable el resultado de la consulta y los imprimo dentro del textbox usando
Código:
value="$mi_variable"
Ahí no tengo problemas, el inconveniente está cuando quiero tomar el dato y realizar una comparación usando una sentencia if de php, este es el código:
Código PHP:
<?php
$conexion_mysql 
mysql_connect("localhost""user""123");
$ced $_GET['id'];
$direccion mysql_query("SELECT * FROM direccion WHERE id = '$ced' "$conexion_mysql);
$registro mysql_fetch_array($direccion);
$cod_mov $registro['codigo'];
?>
<form method="POST">
<h4>Teléfono Celular:</h4>
<select name=cod_cel_1>
    <option <?php if($cod_mov "0416")print "selected" ?> > 0416 </option>
    <option <?php if($cod_mov "0426")print "selected" ?> > 0426 </option>
    <option <?php if($cod_mov "0414")print "selected" ?> > 0414 </option>
    <option <?php if($cod_mov "0424")print "selected" ?> > 0424 </option>
    <option <?php if($cod_mov "0412")print "selected" ?> > 0412 </option>
</select>
</form>
Agradezco un poco de ayuda..
  #2 (permalink)  
Antiguo 08/11/2010, 11:43
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 16 años
Puntos: 839
Respuesta: Select html preseleccionado según consulta

Bienvenido.

Traslado el tema a la sección de PHP.
Es porque estás asignando (=) en lugar de comparar (==)
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 08/11/2010, 12:10
 
Fecha de Ingreso: noviembre-2010
Mensajes: 4
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Select html preseleccionado según consulta

Gracias por la respuesta, de hecho ya hice las pruebas usando el operador "==" y pasa lo mismo, el problema radica en que la condición if parece darse en todos los casos, por lo que la opción resulta siempre seleccionada (selected) y siempre se muestra preseleccionada la última opción "0412" que es donde termina la lectura del select.

Para estar seguro hice la prueba de quitar el print "selected" en la última opción y quedó preseleccionada la penúltima ("0424").

Probé usar los operadores al contrario osea "!=" en vez de "=" y pasa lo mismo, también probé un sencillo "echo $cod_mov" y efectivamente el dato se almacena correctamente en la variable $cod_mov.

De verdad no logro entender cómo es interpretado el dato almacenado ya que la condición if está dando resultado positivo en todos los casos...
  #4 (permalink)  
Antiguo 08/11/2010, 12:13
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 12 años
Puntos: 1517
Respuesta: Select html preseleccionado según consulta

No puede ser, porque al comparar, o sea usando ==, solo va a mostrar aquel que se cumpla. Te recomiendo que verifiques que está trayendo $cod_mov, o sea hazle un var_dump o un echo.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 08/11/2010, 12:28
 
Fecha de Ingreso: noviembre-2010
Mensajes: 4
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Select html preseleccionado según consulta

Cita:
Iniciado por David Ver Mensaje
Bienvenido.

Traslado el tema a la sección de PHP.
Es porque estás asignando (=) en lugar de comparar (==)
De hecho lo acabo de probar y resulta todo lo contrario a lo que indicas, el operador "=" es el adecuado al usar la cláusula if:
Código:
test:<?php if($cod_mov = "0424")print "Sí"?>
Si uso el operador "==" no me imprime el "Sí"
  #6 (permalink)  
Antiguo 08/11/2010, 12:36
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 12 años
Puntos: 1517
Respuesta: Select html preseleccionado según consulta

Te invito a que leas un tutorial porque no es así. Lo que estás haciendo es asignando el valor, no comparando. Pasa por el wiki de este foro para que te puedas desenvolver.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 08/11/2010, 12:44
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 16 años
Puntos: 839
Respuesta: Select html preseleccionado según consulta

Revisa estas secciones del manual:
http://www.php.net/manual/es/languag...assignment.php
http://www.php.net/manual/es/languag...comparison.php

Además, como te indicó Abimael, verifica qué dato realmente tiene esa variable.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #8 (permalink)  
Antiguo 08/11/2010, 13:30
 
Fecha de Ingreso: noviembre-2010
Mensajes: 4
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Select html preseleccionado según consulta

Resuelto !!

Estaba definiendo las variables en dos grupos distintos sin encerrarlas dentro del mismo bloque de código PHP y ese era el problema, efectivamente debía usar el operador de comparación "==" para formular el if que es lo que había hecho al principio pero al ver que no me funcionaba un simple print lo cambié.

Bueno estamos para aprender, seguramente me hubiera quedado estancado en mi terquedad un par de días más...

Código:
<?php if($cod_mov == "0414")print "selected" ?>
Muchas gracias

Etiquetas: html, option, select, selected, php-mysql
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 22:10.