2013-08-06 2 views
1

현재 멋진 Jquery 플러그인 - Fullcalendar로 작업하고 있지만 문제가 있습니다. eventDrop 리스너를 사용하고 Ajax를 사용하여 이벤트 정보를 내 서버 측에 보내고 싶습니다.Fullcalendar 이벤트 드롭 및 아약스

eventDrop: function (event, dayDelta) { 

       $.ajax({ 
        url: ("/PSAdmin/RFCalendar/DragEvent"), 
        data: ({ 
         type: event.className, 
         delta: dayDelta, 
         newDate: event.start, 
         newTitle: event.title 
        }), 
        type: "POST", 
        success: function (data) { 
         $('#calendar').empty(); 
         loadCalendar(); 
        }, 
        error: function (xhr, status, error) { 
         alert("fail"); 
        } 
       }); 
} 

내 문제는 최대한 빨리 이벤트 객체에 포함 된 모든 변수를 보낼 때, 그것은 작동하지 않는다는 것입니다 :

내 코드는 다음과 같다. 예를 들어 dayDelta 만 서버 측에 보내면 작동하지만 아무 것도하지 않습니다.

혹시이 문제가 발생했거나 문제의 원인이 무엇인지 궁금한 점이 있으면 알려 주시기 바랍니다.

+0

코드는 완벽하게 작동합니다. '당신의 이벤트에 뭔가 가치가 있는지 콘솔에서 확인하십시오 .' event.something을 변수에 캐시하고 그 변수를 데이터 객체로 전달할 수 있습니다. – thecodeparadox

+0

각 값에 대해 경고했고 모두 훌륭하지만 서버에 도달하면 null입니다. – vegas2033

+0

브라우저의 devtools를 사용하거나 Fiddler 또는 유사한 것을 사용하여 네트워크 요청을 검사 했습니까? –

답변

1

아쉽게도 아약스 쿼리가 제대로 작동하지 않는 이유를 알 수 없었기 때문에 원래 원하지 않는 것을해야했습니다.

if (event.className == "holiday") { 
        var className = "holiday"; 
       } 

       //build date 
       var date = event.start.getMonth()+1 + "/" + event.start.getDate() + "/" + event.start.getFullYear(); 
       alert(date); 

       $.ajax({ 
        url: ("/PSAdmin/RFCalendar/DragEvent/"), 
        data: ({ 
         className: className, 
         delta: dayDelta, 
         newDate: date, 
         newTitle: event.title 
        }), 
        type: "POST", 
        success: function (data) { 
         $('#calendar').empty(); 
         loadCalendar(); 
        }, 
        error: function (xhr, status, error) { 
         alert("fail"); 
        } 
       }); 

적어도 시간이 오래 걸리지 만 효과가 있습니다. 다른 우선 순위가 있지만이 문제에 대한 단서가 있다면 알려주십시오.

감사합니다, 그렉

1

늦은 대답하지만 난 아무것도와 비슷한 문제를 HADE는 서버로 전송하기. 모든 것을 시도하고 jquery를 사용하여 객체를 확장 및 복사하는 캐싱을 시도했습니다.

나를 위해 일한 것은 요청을 위해 헤더를보고있었습니다. 그들은 항상 데이터를 가지고있는 것처럼 보였습니다.

나는이 코드 서버 사이드로 끝났다. 내가 원하는 것은 아니지만 아마 누군가가 같은 문제를 해결하는 데 도움이 될 수 있습니다!

C#을

[HttpGet] 
    public void UpdateOrderData(object orderObj) 
    { 
     var obj = new 
     { 
      start = System.Web.HttpUtility.UrlDecode(HttpContext.Current.Request.QueryString["orderObj[start]"]), 
      end = System.Web.HttpUtility.UrlDecode(HttpContext.Current.Request.QueryString["orderObj[end]"]), 
      date = System.Web.HttpUtility.UrlDecode(HttpContext.Current.Request.QueryString["orderObj[date]"]), 
      resourceId = System.Web.HttpUtility.UrlDecode(HttpContext.Current.Request.QueryString["orderObj[resourceId]"]), 
      orderId = System.Web.HttpUtility.UrlDecode(HttpContext.Current.Request.QueryString["orderObj[orderId]"]), 
     }; 

     calendarUnitOfWork.CustomDataRepository.UpdateOrderData(obj); 
    } 

자바 스크립트

myModel.eventDrop = function(event, delta, revertFunc, jsEvent, ui, view) 
{ 
    calUOW.orderrepository.updateOrderData({ 
      start: event.start.format(), 
      end: event.end.format(), 
      date: event.start.format("YYYY-MM-DD"), 
      resourceId: event.resourceId, 
      orderId: event.orderId 
     }); 
    }