Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Unavailable datepicker no funciona.

Estas en el tema de Unavailable datepicker no funciona. en el foro de Jquery en Foros del Web. Hola, Estoy tratando de crear un calendario para seleccionar las fechas en un formulario. Quiero deshabilitar algunos días de la semana, el problema es que ...
  #1 (permalink)  
Antiguo 22/05/2013, 11:25
 
Fecha de Ingreso: abril-2013
Mensajes: 82
Antigüedad: 11 años
Puntos: 0
Unavailable datepicker no funciona.

Hola,
Estoy tratando de crear un calendario para seleccionar las fechas en un formulario.

Quiero deshabilitar algunos días de la semana, el problema es que si yo creo un array e i nserto los dias que quiero deshabilitar sí que me funciona, pero si creo un array y le voy añadiendo los dias que obtengo de una consulta a la base de datos no me funciona...


Mi código es este:
En la vista tengo:

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2.  
  3.     var disabledDays =JSON.parse('<?php echo json_encode($this->dias) ?>');
  4.     document.writeln(disabledDays);
  5.     //var diasclase = [2,3,5,6];
  6.     var diasclase =JSON.parse('<?php echo json_encode($this->diasclase) ?>');
  7.     document.writeln(diasclase);
  8.  
  9.  
  10.  
  11.     function disableAllTheseDays(date) {
  12.     var m = date.getMonth(), d = date.getDate(), y = date.getFullYear();
  13.     for (i = 0; i < disabledDays.length; i++) {
  14.         if($.inArray((m+1) + '-' + d + '-' + y,disabledDays) != -1) {
  15.             return [false, "", "Unavailable"];
  16.         }
  17.     }
  18.      if ($.inArray(date.getDay(), diasclase) > -1) {
  19.         return [false, "", "Unavailable"];
  20.     }
  21.     return [true];
  22. }
  23. $(function() {
  24.     $('#fecha').datepicker({
  25.         dateFormat: 'yy-mm-dd',
  26.         beforeShowDay: disableAllTheseDays,
  27.         minDate: '+0d',
  28.         maxDate: '+3m',
  29.         firstDay: 1});
  30.  
  31. });
  32. </script>
  33.  
  34.  
  35.  
  36. <form action="index.php" method="POST"/>
  37.     <div>
  38.         Selecciona Fecha:
  39.         <input type="text" name="fecha" id="fecha"/>
  40.     </div>

y en mi controlador Realizo la consulta a la base de y le paso los dias a la vista:

$
Código PHP:
dia = new Application_Model_DbTable_Clase();
         
$diassinclase $dia->diassinclase($tipoactividad,$actividad);
         
$diasclase = Array();
         foreach(
$diassinclase as $d){
             
//echo (" Valor: ".$d['iddia']);
             
array_push($diasclase$d['iddia']);
         }
         
print_r($diasclase);
         
$this->view->diasclase $diasclase
De esta forma no funciona, pero si yo sustituyo el código anterior por:


Código PHP:
  $diasclase = Array(2,3,5,6);
      
         
$this->view->diasclase $diasclase
Sí que se me desactivan esos días en mi calendario.

¿Alguien me puede ayudar? ¿Estoy creando mal el array que obtengo de la consulta? gracias.
  #2 (permalink)  
Antiguo 22/05/2013, 11:59
Avatar de fhederico  
Fecha de Ingreso: agosto-2009
Mensajes: 247
Antigüedad: 14 años, 8 meses
Puntos: 23
Respuesta: Unavailable datepicker no funciona.

Hola,

Es necesario que lo crees tu? ya que existen varios Calendario en JQuery que tienen varias funciones entre ellas mostrar o no ciertos dias, o deshabilitar los fines de semana, por ejemplo

Algunos de ellos son:

http://glad.github.io/glDatePicker/

http://arshaw.com/fullcalendar/

Saludos
  #3 (permalink)  
Antiguo 22/05/2013, 12:07
 
Fecha de Ingreso: abril-2013
Mensajes: 82
Antigüedad: 11 años
Puntos: 0
Respuesta: Unavailable datepicker no funciona.

Sí necesito hacerlo yo, porque necesito saber los dias a deshabilitar haciendo una consulta en la base de datos.

De todas formas encontré el error, tenía que convertir a entero el dato que obtenía de la base de datos.

Igualmente gracias por la ayuda.

Etiquetas: datepicker
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 16:41.