Ver Mensaje Individual
  #2 (permalink)  
Antiguo 27/03/2014, 02:42
liranan
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Agenda de citas por horas

Buenas Raúl.

Imagino que estos datos los tienes en una base de datos. En ese caso en la tabla "citas" deberás tener un campo de "inicio_cita" y "fin_cita" con las horas de inicio y final de la cita.

Pongamos que la tabla es así:

citas
-------
id_cita
usuario
descripcion
dia
inicio_cita (va de la 1h a las 24h)
fin_cita (va de la 1h a las 24h)

En ese caso, haría algo así (la tabla te quedará con las horas en horizontal en vez de en vertical, eso si quieres ya miras cómo cambiarlo tú)
Código HTML:
Ver original
  1. <tr>
  2. [PHP]<?php
  3. for($i=1;$i<=24;$i++){ //Esto ya lo ajustas a las horas que quieras poner y con el formato que quieras
  4.     echo "<th>".$i."</th>";
  5. }
  6. ?>[/PHP]
  7. </tr>
Código PHP:
//Conexión a la base de datos
$dia=date('d'); //Aquí podrías cambiar el día de hoy por el que quisieras
$query='SELECT * FROM citas WHERE dia="'.$dia.'";
$select=@mysql_query($query);
while($row=@mysql_fetch_array($select)){
     echo "<tr>";
          for($i=1;$i<=24;$i++){
               if($row['
inicio_cita']<=$i && $row['fin_cita']>=$i){
                     echo "<td class='
cita'>Cita</td>";
               }else{
                     echo "<td class='
no-cita></td>";
               }
          }
     echo "
</tr>";

Código HTML:
Ver original 

Evidentemente el ejemplo es muy sencillo, pero creo que te sirve para lo que buscas. Luego ya lo puedes ir perfeccionando con formato de las horas, el texto que se muestra en la cita, etc.

Habría que poner en css la class "cita" con un color azul y la class "no-cita" con un color gris. Incluso podrías añadir lo de que el cuadro donde se inicie la cita aparezca más oscuro y con el texto, como en el ejemplo, añadiento otro "if"

Código HTML:
Ver original
  1. <tr>
  2. [PHP]<?php
  3. for($i=1;$i<=24;$i++){ //Esto ya lo ajustas a las horas que quieras poner y con el formato que quieras
  4.     echo "<th>".$i."</th>";
  5. }
  6. ?>[/PHP]
  7. </tr>
Código PHP:
//Conexión a la base de datos
$dia=date('d'); //Aquí podrías cambiar el día de hoy por el que quisieras
$query='SELECT * FROM citas WHERE dia="'.$dia.'";
$select=@mysql_query($query);
while($row=@mysql_fetch_array($select)){
     echo "<tr>";
          for($i=1;$i<=24;$i++){
               if($row['
inicio_cita']<=$i && $row['fin_cita']>=$i){
                     if($row['
inicio_cita']==$i){
                           echo "<td class='
inicio-cita'>".$row['descripcion']."</td>";
                     }else{
                           echo "<td class='
cita'></td>";
                     }
               }else{
                     echo "<td class='
no-cita></td>";
               }
          }
     echo "
</tr>";

Código HTML:
Ver original