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<script type="text/javascript">
var disabledDays =JSON.parse('<?php echo json_encode($this->dias) ?>');
document.writeln(disabledDays);
//var diasclase = [2,3,5,6];
var diasclase =JSON.parse('<?php echo json_encode($this->diasclase) ?>');
document.writeln(diasclase);
function disableAllTheseDays(date) {
var m = date.getMonth(), d = date.getDate(), y = date.getFullYear();
for (i = 0; i < disabledDays.length; i++) {
if($.inArray((m+1) + '-' + d + '-' + y,disabledDays) != -1) {
return [false, "", "Unavailable"];
}
}
if ($.inArray(date.getDay(), diasclase) > -1) {
return [false, "", "Unavailable"];
}
return [true];
}
$(function() {
$('#fecha').datepicker({
dateFormat: 'yy-mm-dd',
beforeShowDay: disableAllTheseDays,
minDate: '+0d',
maxDate: '+3m',
firstDay: 1});
});
</script>
<form action="index.php" method="POST"/>
<div>
Selecciona Fecha:
<input type="text" name="fecha" id="fecha"/>
</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.