Foros del Web » Programando para Internet » PHP »

Problema al crear array

Estas en el tema de Problema al crear array en el foro de PHP 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:29
 
Fecha de Ingreso: abril-2013
Mensajes: 82
Antigüedad: 11 años
Puntos: 0
Problema al crear array

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.
  #2 (permalink)  
Antiguo 23/05/2013, 00:34
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 6 meses
Puntos: 331
Respuesta: Problema al crear array

Comprueba el valor de $diassinclase y asegúrate que $d también es correcto. En lugar de array_push es recomendable usar corchetes.
Salu2
__________________
Fere libenter homines, id quod volunt, credunt.

Etiquetas: formulario
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 09:42.