Foros del Web » Programando para Internet » PHP »

Porque pasa esto???

Estas en el tema de Porque pasa esto??? en el foro de PHP en Foros del Web. Hola tengo el siguiente programa que debe de imprimirme un menu select pero de una forma especifica : Si ahora se entra en la pagina ...
  #1 (permalink)  
Antiguo 05/11/2012, 15:00
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
Porque pasa esto???

Hola tengo el siguiente programa que debe de imprimirme un menu select pero de una forma especifica :

Si ahora se entra en la pagina imprimir el select pero uno de sus opciones debe de ser selected="selected" y este uno sera definido por el resultado de una base de datos. Pero si ya se ha dado al boton enviar y a resultado errores por otros campos entonces el selected debe de ser lo enviado en el select.

Código PHP:
Ver original
  1. if($_POST['hidden_ch']){
  2.     $selected_options[htmlentities($_POST['dias_ch'])]=true;
  3.     for($c=1;$c!=32;$c++){
  4.          $contenido.='<option value="'.$c.'"';
  5.          if($selected_options[$c]){
  6.              $contenido.=' selected="selected"';     
  7.          }
  8.          $contenido.='>'.$c.'</option>';
  9. }
  10. }else{
  11.     $selected_options[date('j',$datos['fecha_n'])]=true;
  12.     for($c=1;$c!=32;$c++){
  13.         $contenido.='<option value="'.$c.'"';
  14.         if($selected_options[$c]){
  15.             $contenido.=' selected="selected"';
  16.         }
  17.         $contenido.='>'.$c.'</option>';
  18.     }
  19. }

Lo que recibo de $datos['fecha_n'] es un timestamp de una fecha pero solo escojo el dia del mes .

El problema esta que el select me lo imprime con todas las opciones puestas a selected="selected"

Como solucionar lo ??

Saludos
  #2 (permalink)  
Antiguo 05/11/2012, 15:21
Avatar de punk-devil  
Fecha de Ingreso: febrero-2008
Ubicación: Tuxtla Gutiérrez, Chiapas, Mexico
Mensajes: 19
Antigüedad: 16 años, 2 meses
Puntos: 3
Respuesta: Porque pasa esto???

Al parecer el problema son las condiciones de la línea 5 y 11. Intenta inicializando las demas opciones a false. Evitar tambien el uso del arreglo $selected_options sería buena idea (hacer la comparación directamente con lo recibido en POST)
  #3 (permalink)  
Antiguo 05/11/2012, 15:39
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
Respuesta: Porque pasa esto???

Cita:
Iniciado por punk-devil Ver Mensaje
Al parecer el problema son las condiciones de la línea 5 y 11. Intenta inicializando las demas opciones a false. Evitar tambien el uso del arreglo $selected_options sería buena idea (hacer la comparación directamente con lo recibido en POST)
Buenas :)

No te entiendo cuando dices esto: Intenta inicializando las demas opciones a false

Que mas funciones ??

Lo de comparara directamente con el post si que te entendi :D
  #4 (permalink)  
Antiguo 05/11/2012, 16:12
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 2 meses
Puntos: 53
Respuesta: Porque pasa esto???

agrega un else a esta parte

Código PHP:
Ver original
  1. if($selected_options[$c]){
  2.              $contenido.=' selected="selected"';    
  3.          }
  4. else
  5. {
  6.              $contenido.='';    
  7. }
asi "borras" lo que tenia la variable
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #5 (permalink)  
Antiguo 06/11/2012, 00:58
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
Respuesta: Porque pasa esto???

Cita:
Iniciado por PIRRUMAN Ver Mensaje
agrega un else a esta parte

Código PHP:
Ver original
  1. if($selected_options[$c]){
  2.              $contenido.=' selected="selected"';    
  3.          }
  4. else
  5. {
  6.              $contenido.='';    
  7. }
asi "borras" lo que tenia la variable
Perro si lo que hace el else es poner a la variable nada .... y esta variable no puedo borrarla porque también contiene otras cosas... Pero bueno luego lo pruebo y te digo
Saludos
  #6 (permalink)  
Antiguo 06/11/2012, 01:11
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 9 meses
Puntos: 641
Respuesta: Porque pasa esto???

estás mal, fijate en el punto antes del = ese punto sirve para no agregar nada, sin tener que vaciar.

aunque no es necesario bastaría con que solo pusieras el if()
  #7 (permalink)  
Antiguo 06/11/2012, 09:30
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 2 meses
Puntos: 53
Respuesta: Porque pasa esto???

Cita:
Iniciado por memoadian Ver Mensaje
estás mal, fijate en el punto antes del = ese punto sirve para no agregar nada, sin tener que vaciar.

aunque no es necesario bastaría con que solo pusieras el if()

a parte en esta seccion segun entiendo solo dice si existe $selected_option[$c]
, lo que siempre sera verdarero y entrara al if y hara que todos sean selected.

Cita:
if($selected_options[$c]){
$contenido.=' selected="selected"';
}
creo deberia ser algo asi
Cita:
if($ELEMENTOSRECORRIDOS[$c]==$ELEMENTOCHECADO)
{
$contenido.=' selected="selected"';
}
else
{
$contenido.='';
}
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #8 (permalink)  
Antiguo 06/11/2012, 14:25
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
Respuesta: Porque pasa esto???

Cita:
Iniciado por PIRRUMAN Ver Mensaje
a parte en esta seccion segun entiendo solo dice si existe $selected_option[$c]
, lo que siempre sera verdarero y entrara al if y hara que todos sean selected.



creo deberia ser algo asi
Porque siempre sera verdadero?? Esque esto: $selected_options[htmlentities($_POST['dias_ch'])]=true;

crea $selected_options[un valor entre 1 y 31] y luego en el bucle el $c tambien es un valor entre 1 y 31 ... porque siempre sera verdadero???

Saludos
  #9 (permalink)  
Antiguo 06/11/2012, 14:29
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 2 meses
Puntos: 53
Respuesta: Porque pasa esto???

segun entiendo esto

Cita:
if($selected_options[$c]){
solo indica que si existe , esta definido o no es nulo (que no lo es) entrara a la condicion , si no significa eso podrias explicarme que significa?y darme un ejemplo de cuando no se cumpliria dicha condicion?
de antemano gracias
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #10 (permalink)  
Antiguo 07/11/2012, 14:56
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
Respuesta: Porque pasa esto???

Cita:
Iniciado por PIRRUMAN Ver Mensaje
segun entiendo esto


solo indica que si existe , esta definido o no es nulo (que no lo es) entrara a la condicion , si no significa eso podrias explicarme que significa?y darme un ejemplo de cuando no se cumpliria dicha condicion?
de antemano gracias
Aver.. yo creo que aqui creo un array con un solo elemento que tiene valor true...

Código PHP:
Ver original
  1. $selected_options[htmlentities($_POST['dias_ch'])]=true;

Y luego con la linea de la if comprueba si existe $selected_options['el nombre del elemeto que seria un numero...'] y si el nombre del elemento es diferente que el de arriba entonces seria false o no???
No me entero donde fallo.

Saludos
  #11 (permalink)  
Antiguo 07/11/2012, 15:51
Avatar de punk-devil  
Fecha de Ingreso: febrero-2008
Ubicación: Tuxtla Gutiérrez, Chiapas, Mexico
Mensajes: 19
Antigüedad: 16 años, 2 meses
Puntos: 3
Respuesta: Porque pasa esto???

No, patilanz, mientras la variable sea diferente de 0, de null o de false, entonces es false. Pero como no has declarado implicitamente ninguna de las anteriores... entonces todas son true;
  #12 (permalink)  
Antiguo 08/11/2012, 04:07
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
Respuesta: Porque pasa esto???

Entonces funcionaria con if($selected_options[$c]==true)

???

Etiquetas: html
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 00:29.