Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/05/2013, 11:25
mandygr87
 
Fecha de Ingreso: abril-2013
Mensajes: 82
Antigüedad: 11 años, 7 meses
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.