Foros del Web » Programando para Internet » PHP »

Checkbox con la hora

Estas en el tema de Checkbox con la hora en el foro de PHP en Foros del Web. Necesito crear un objeto del tipo checkbox en donde aparezca una lista de las horas desde las 8 de la mañana a las 18 horas. ...
  #1 (permalink)  
Antiguo 01/08/2004, 22:05
 
Fecha de Ingreso: julio-2002
Ubicación: Rancagua - Chile
Mensajes: 494
Antigüedad: 15 años, 5 meses
Puntos: 0
Checkbox con la hora

Necesito crear un objeto del tipo checkbox en donde aparezca una lista de las horas desde las 8 de la mañana a las 18 horas.
Poder seleccionar una de esas horas.
Ojala que alguien pueda, por que yo cree un ciclo pero me imprime 8:50, 8:60 .... 8:90, 9:00 .....


Espero su ayuda.

Salu2 !!!
__________________
AK.T.I.V.E.tm Live, Never DIE
  #2 (permalink)  
Antiguo 02/08/2004, 01:27
 
Fecha de Ingreso: julio-2004
Ubicación: Puerto Vallarta, Jalisco, Mexico
Mensajes: 186
Antigüedad: 13 años, 4 meses
Puntos: 0
lo que no entiendo es como tipo checkbox, quieres una lista de horas con un checkbox a un lado y que puedan seleccionar una? o varias? o como ?

Código PHP:
//podrias hacer algo como esto para checkbox donde pueden seleccionar varias (CHECKBOX)
for ($i=8;$i<= 18;$i++) {
echo 
"<input type='checkbox' name='elcheckbox[]' value='".str_pad($i2"0"STR_PAD_LEFT).":00'>".str_pad($i2"0"STR_PAD_LEFT).":00<br>";
}

// o podrias hacer algo como esto para radio donde solo pueden seleccionar 1

for ($i=8;$i<= 18;$i++) {
echo 
"<input type='radio' name='hora' value='".str_pad($i2"0"STR_PAD_LEFT).":00'>".str_pad($i2"0"STR_PAD_LEFT).":00<br>";

tambien podrias hacerlo en tipo combobox, no es dificil adaptarlo.

Suerte
__________________
Shanti Castillo G.
  #3 (permalink)  
Antiguo 02/08/2004, 10:27
 
Fecha de Ingreso: julio-2002
Ubicación: Rancagua - Chile
Mensajes: 494
Antigüedad: 15 años, 5 meses
Puntos: 0
Gracias.
Lo adapte a un combobox, pero necesito que aparezcan las horas con diferencias de 10 minutos y no se como modificar el ciclo for.
Espero su ayuda.
Gracias

Salu2 !!!
__________________
AK.T.I.V.E.tm Live, Never DIE
  #4 (permalink)  
Antiguo 02/08/2004, 10:52
 
Fecha de Ingreso: julio-2002
Ubicación: Rancagua - Chile
Mensajes: 494
Antigüedad: 15 años, 5 meses
Puntos: 0
Agregue otro ciclo for :

Código PHP:
for ($i=8;$i<= 18;$i++) { 
    for (
$j=00;$j<=5;$j++) {
        
$min=$j*10;
        
         echo 
"<option value='".str_pad($i2"0"STR_PAD_LEFT).$min."'>".str_pad($i2"0"STR_PAD_LEFT).$min."</option>";
    }

pero no imprime bien el valor del option y el texto dentro del option.
Me imprime asi.
__________________
AK.T.I.V.E.tm Live, Never DIE
  #5 (permalink)  
Antiguo 02/08/2004, 11:40
 
Fecha de Ingreso: julio-2004
Ubicación: Puerto Vallarta, Jalisco, Mexico
Mensajes: 186
Antigüedad: 13 años, 4 meses
Puntos: 0
prueba con este, este imprime de XX:00 a XX:59

si quieres que imprima de XX:00 a XX:50 solo cambia esto

for ($x=0;$x<=60;$x=$x+10) {
if ($x == 60)
$x = 59;

por

for ($x=0;$x<=50;$x=$x+10) {

Código PHP:
<select name="hora">
<?php

for ($i=8;$i<= 18;$i++) {
for (
$x=0;$x<=60;$x=$x+10) {
if (
$x == 60)
$x 59;

echo 
"<option>".str_pad($i2"0"STR_PAD_LEFT).":".str_pad($x2"0"STR_PAD_LEFT)."</option>";
 }
}

?>
</select>
Espero te ayude ;)
__________________
Shanti Castillo G.
  #6 (permalink)  
Antiguo 02/08/2004, 12:37
 
Fecha de Ingreso: julio-2002
Ubicación: Rancagua - Chile
Mensajes: 494
Antigüedad: 15 años, 5 meses
Puntos: 0
Gracias.
Funciona muy bien

Salu2 !!!
__________________
AK.T.I.V.E.tm Live, Never DIE
  #7 (permalink)  
Antiguo 02/08/2004, 15:45
 
Fecha de Ingreso: marzo-2003
Ubicación: onde toy?
Mensajes: 1.437
Antigüedad: 14 años, 9 meses
Puntos: 9
Si es que a alguien le sirve..jejeje estuve tratando de mejorar el codigo y llegué a esto señores..por si alguien desea escoger todos los chekbox mediante uno solo

<form name="form1" method="post" action="">
<?php
for ($i=8;$i<= 18;$i++) {
echo "<input type='checkbox' name='elcheckbox[]' value='".str_pad($i, 2, "0", STR_PAD_LEFT).":00'>".str_pad($i, 2, "0", STR_PAD_LEFT).":00<br>";
}
?>
<input name="checkbox" class="input" type="checkbox" onClick="this.value=checklunes(this.form,'elcheckb ox[]')" value="Seleccionar todos">
</form>

y en el <head></head>

<script LANGUAGE="JavaScript">


<!-- Begin
var checkflag = "false";
function checklunes(field,dia) {
if (checkflag == "false") {
for(i=0;i<field.elements.length;i++)

if(field.elements[i].name==dia)
field.elements[i].checked=true;
checkflag = "true";
return "Quitar selección"; }
else {
for(i=0;i<field.elements.length;i++)

if(field.elements[i].name==dia)
field.elements[i].checked=false;
checkflag = "false";
return "Seleccionar todos"; }

}
//end -->
</script>


el codigo Javascript lo saqué de otro sitio que tengo yo... ojala y les sirva...
__________________
Buena Vida...
Francisco
  #8 (permalink)  
Antiguo 09/08/2004, 10:03
 
Fecha de Ingreso: julio-2002
Ubicación: Rancagua - Chile
Mensajes: 494
Antigüedad: 15 años, 5 meses
Puntos: 0
Con la función que me entrego Shantic , puedo obtener bien la hora, y con esa selección la ingreso dentro de un campo de la tabla, pero al momento de editar y mostrar que valor se habia seleccionado no puedo dejar el valor dentro del combo seleccionado
Es decir, una vez que quiero editar los valores que habia ingresado necesito validar el valor que esta en la tabla con el valor que va generando el ciclo, y si es igual debo dejarlo seleccionado en el combo.
Código PHP:
<? selected ""?>
<select name="hora"> 
<?php 

for ($i=8;$i<= 18;$i++) { 
for (
$x=0;$x<=60;$x=$x+10) { 
if (
$x == 60
$x 59
   
$var_hora str_pad($i2"0"STR_PAD_LEFT);
   if (
$var_hora == mysql_result($ver_datos,0,"hora"))
       
$selected "selected";
echo 
"<option $selected>".str_pad($i2"0"STR_PAD_LEFT).":".str_pad($x2"0"STR_PAD_LEFT)."</option>"



?> 
</select>
Espero se entienda y me ayuden.
Gracias.

Salu2 !!!
__________________
AK.T.I.V.E.tm Live, Never DIE
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:40.