Foros del Web » Programando para Internet » Jquery »

Repetir eventos con jQuery Week Calendar

Estas en el tema de Repetir eventos con jQuery Week Calendar en el foro de Jquery en Foros del Web. Hola a todos: Estoy adaptando el jQuery Week Calendar para usarlo con una base de datos. Ya tengo casi todo hecho y funcionando, pero quiero ...
  #1 (permalink)  
Antiguo 17/11/2011, 09:46
 
Fecha de Ingreso: septiembre-2011
Ubicación: Almería
Mensajes: 20
Antigüedad: 12 años, 7 meses
Puntos: 2
Repetir eventos con jQuery Week Calendar

Hola a todos:

Estoy adaptando el jQuery Week Calendar para usarlo con una base de datos. Ya tengo casi todo hecho y funcionando, pero quiero añadirle la opción de crear eventos que se repitan, diariamente, semanalmente,etc. La idea de como hacerlo ya la tengo, pero cuando me he puesto a aplicarla, me aparece una advertencia de PHP. El error es el siguiente:
Cita:
Warning: date() expects parameter 2 to be long, string given in C:\xampp\htdocs\calendario_luis\calendario\guardar .php on line 16
Lo más cómico, es que sólo me manda la advertencia la primera vez que introduzco una nueva fecha para la fecha final de repetición. Si vuelvo a crear un evento, la fecha se guarda correctamente. Pero en cuanto actualizo la página, el primer intento siempre falla. Con el Firebug he visto que aparentemente el parámetro que se pasa no es numérico (NaN). Dejo el código para entenderlo mejor.

Los datos llegan por JSON, del script calendario.js.
Código Javascript:
Ver original
  1. eventNew : function(calEvent, $event) {
  2.     $('#repeat_field').change(calendar_new_get_recurring_end);
  3.          var $dialogContent = $("#event_edit_container");
  4.          resetForm($dialogContent);
  5.          var startField = $dialogContent.find("select[name='start']").val(calEvent.start);
  6.          var endField = $dialogContent.find("select[name='end']").val(calEvent.end);
  7.          var titleField = $dialogContent.find("input[name='title']");
  8.          var bodyField = $dialogContent.find("textarea[name='body']");
  9.      var repeatField = $dialogContent.find("select[name='repeat']").val(calEvent.repeat);
  10.      var repeatEndField = $dialogContent.find("#calendar_new_recurring_end").val(calEvent.repeatEndDate);
  11.  
  12.  
  13.  
  14.  
  15.          $dialogContent.dialog({
  16.             modal: true,
  17.             title: "Nueva Cita",
  18.             close: function() {
  19.                $dialogContent.dialog("destroy");
  20.                $dialogContent.hide();
  21.                $('#calendar').weekCalendar("removeUnsavedEvents");
  22.             },
  23.             buttons: {
  24.                Guardar : function() {
  25.                   calEvent.id = id;
  26.                   id++;
  27.                   calEvent.start = new Date(startField.val());
  28.                   calEvent.end = new Date(endField.val());
  29.                   calEvent.title = titleField.val();
  30.                   calEvent.body = bodyField.val();
  31.           calEvent.repeat = repeatField.val();
  32.           calEvent.repeatEndDate = new Date(repeatEndField.val());
  33.                    $.getJSON("guardar.php?titulo="+titleField.val()+"&cuerpo="+bodyField.val()+"&fecha_inicio="+calEvent.start.getTime()/1000+"&fecha_final="+calEvent.end.getTime()/1000+"&repetir="+repeatField.val()+"&final_repeticion="+calEvent.repeatEndDate.getTime()/1000+"&tipo=ingreso&id="+calEvent.id, { }, function(json){});
  34.  
  35.                   $calendar.weekCalendar("removeUnsavedEvents");
  36.                   $calendar.weekCalendar("updateEvent", calEvent);
  37.                   $dialogContent.dialog("close");
  38.                },
  39.                Cancelar : function() {
  40.                   $dialogContent.dialog("close");
  41.                }
  42.             }

El parámetro que falla aquí es repeatEndDate.

El archivo guardar.php es el que inserta los datos en la DB.
Código PHP:
Ver original
  1. <?  
  2. include('conf/config.php') ;
  3. include('clases/base_datos.php') ;
  4. $bd = new base_datos() ;
  5. $bd1 = new base_datos() ;
  6. $titulo = addslashes($_GET['titulo']);
  7. $cuerpo = addslashes($_GET['cuerpo']);
  8. $fecha_inicio = $_GET['fecha_inicio'];
  9. $fecha_final = $_GET['fecha_final'];
  10. $repetir = $_GET['repetir'];
  11. $final_repeticion = $_GET['final_repeticion'];
  12. $id = $_GET['id'];
  13. $tipo = $_GET['tipo'];
  14. $fecha_inicio=date('Y-m-d H:i:s',$fecha_inicio);
  15. $fecha_final=date('Y-m-d H:i:s',$fecha_final);
  16. $final_repeticion=date('Y-m-d',$final_repeticion);

La variable $final_repeticion es la que se guarda en la DB.
No entiendo muy bien que puede pasar, el hecho de que sólo se produzca la primera vez me desconcierta. Si alguien puede ayudarme, se lo agradezco de antemano.

Un saludo!
  #2 (permalink)  
Antiguo 17/11/2011, 09:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Repetir eventos con jQuery Week Calendar

Pues el problema no lo tienes en PHP, como bien dices el problema es que el parámetro que se manda es NaN que en Javascript indica Not a Number.

Te muevo al foro de Javascript para que te asistan correctamente.

Etiquetas: calendario, php
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 13:34.