在fullcalendar中传递日期值

时间:2010-08-26 15:43:07

标签: ajax fullcalendar

我使用fullcalendar将日期时间上传到我的数据库,我有以下脚本

     $dialogContent.dialog({
        modal: true,
        title: "New Listing",
        close: function() {
           $dialogContent.dialog("destroy");
           $dialogContent.hide();
        },
        buttons: {
           save : function () {
              calEvent.id = id;
              id++;
              calEvent.start = new Date(startField.val());
              calEvent.end = new Date(endField.val());
              calEvent.title = titleField.val();
              calEvent.body = bodyField.val();

        $.ajax({


 type: "POST",
   url: "addnew.php",
   data: (
   {
   'st':new Date(startField.val()),
   'et':new Date(endField.val()),
   'title':titleField.val(),
   'body':bodyField.val()
   }
   ),

   success: function(msg){
     alert( "Data Saved: " + msg );
   }
 });

但是我的日期值根本没有发送。它的错,但我不知道如何或为什么。

4 个答案:

答案 0 :(得分:0)

Date构造函数不解析任何旧的日期字符串。使用fullCalendar的解析函数(假设您使用的是ISO8061格式):

http://arshaw.com/fullcalendar/docs/utilities/parseDate/

答案 1 :(得分:0)

您在服务器端获得的日期值是多少? 可能是,您应该发送简单的数据类型,如UNIX时间戳或使用.serialize()为您的表单。

答案 2 :(得分:0)

我一直在玩ParseDate,但我只是没有得到结果,似乎我的概念都错了;

  dayClick : function(date, allDay, jsEvent, view)  {
     var $dialogContent = $("#event_edit_container");

             y = date.getFullYear();
             m = date.getMonth();
             d = date.getDate();

             h1 = date.getHours();
             m1 = date.getMinutes();

             h2 = h1 + 1;
             m2 = m1;

             calEvent = { title: 'New Calendar Event', editable:true, distributor: '', etype: '', location: '', website: '',   start: new Date(y, m, d, h1, m1), end: new Date(y, m, d, h2, m2), allDay: false };
         $calendar.fullCalendar("renderEvent",calEvent, true);

     resetForm($dialogContent);

     var startField = $dialogContent.find("select[name='start']").val(calEvent.start);
     var endField = $dialogContent.find("select[name='end']").val(calEvent.end);
     var titleField = $dialogContent.find("input[name='title']").val(calEvent.title);
     var distributorField = $dialogContent.find("input[name='distributor']").val(calEvent.distributor);
     var etypeField = $dialogContent.find("select[name='etype']").val(calEvent.etype);
     var locationField = $dialogContent.find("input[name='location']").val(calEvent.location);
     var websiteField = $dialogContent.find("input[name='website']").val(calEvent.website);
     var bodyField = $dialogContent.find("textarea[name='body']");
     //var start_date = eval($.fullCalendar.parseDate(this_one['start']).getTime()) / 1000;



     $dialogContent.dialog({
        modal: true,
        title: "New Listing",
        close: function() {
           $dialogContent.dialog("destroy");
           $dialogContent.hide();
        },
        buttons: {
           save : function () {
              calEvent.id = id;
              id++;
              calEvent.start = $.fullCalendar.parseDate(new Date(startField.val()));
              calEvent.end = new Date(endField.val());
              calEvent.title = titleField.val();
              calEvent.distributor = distributorField.val();
              calEvent.etype = etypeField.val();
              calEvent.location = locationField.val();
              calEvent.website = websiteField.val();
              calEvent.body = bodyField.val();
              //$.fullCalendar.parseDate(calEvent.start);

              //calEvent.st = start_date.val();
              //$.fullCalendar.parseDate(startField.val());
        $.ajax({

输入:“POST”,    url:“addnew.php”,    数据:(    {    'ST':calEvent.start,    'et':new Date(endField.val()),    '标题':titleField.val(),    '分配器':distributorField.val(),    'VLAN时':etypeField.val(),    '位置':locationField.val(),    '网站':websiteField.val()    '主体':bodyField.val()    }    ),

成功:函数(msg){      alert(“Data Saved:”+ msg);    }  });

我正处于一个砖墙上,我已经尝试了大量的hte代码,但它只是猜测工作。如果有一个日期文件被传递或甚至打印出来的例子,我真的很感激它,看看它应该如何工作。在这种情况下,试验和错误对我不起作用。 感谢

答案 3 :(得分:-1)

已经很晚了,我暂时没有使用过Javascript,但肯定是输入。值不是input.val()