2012-05-09 56 views
0

我有一個拖放日曆,'on drop'需要將細節傳遞給變量。jQuery循環爲每個'drop'生成隱藏字段

到目前爲止,我已經設法讓它在textarea中追加,所以我可以看到它正在記錄數據正常或創建一個隱藏字段,將採取最後一滴。

但是,我需要將每個項目放在隱藏字段中,以便將它傳遞到下一頁,然後在PHP中對其進行處理。

我猜測,我需要一個循環的某種類型,以便每一滴...生成隱藏的領域。

但我沒有運氣得到它的工作。

這是我的代碼。任何幫助都會非常有用。

感謝

drop: function(date, allDay) { // this function is called when something is dropped 

      // retrieve the dropped element's stored Event Object 
      var originalEventObject = $(this).data('eventObject'); 

      // we need to copy it, so that multiple events don't have a reference to the same object 
      var copiedEventObject = $.extend({}, originalEventObject); 

      // assign it the date that was reported 
      copiedEventObject.start = date; 
      copiedEventObject.allDay = allDay; 

      // render the event on the calendar 
      // the last `true` argument determines if the event "sticks" (http://arshaw.com/fullcalendar/docs/event_rendering/renderEvent/) 
      $('#calendar').fullCalendar('renderEvent', copiedEventObject, true); 


      //Record and add dropped items to list 
      var txt = $("#listbox"); 
      var dtstart = copiedEventObject.start + '\n' 
      var caltitle = copiedEventObject.title 

      txt.val(txt.val() + dtstart); // For our reference - Remove later 

       var input = document.createElement("input"); 
       input.setAttribute("type", "hidden"); 
       input.setAttribute("name", "dtstart"); 
       input.setAttribute("value", dtstart); 

       //append to form element that you want . 
       document.getElementById("calendarform").appendChild(input) 

      // remove the element from the "Draggable Events" list 
      $(this).remove(); 

     } 
    }); 


}); 
+1

'document.createElement()'? 'setAttribute()'設置一個值?你正在使用jQuery,所以讓我們遠離這個東西。除此之外,使用本地JS設置值的正確方法是'input.value = ...;' – ThiefMaster

+0

感謝。我現在更新了它。 –

回答

1

你可以做的是讓列表框一個 「UL」 元素如下

<ul id = "listbox"> 

</ul> 

然後添加下面的jQuery到你的函數

var txt = $('#listbox');  
txt.append("<li class ='listItem'> "+dtstart +"</li>") 

最後你會得到一個列表<.li>(點是否存在,否則它不會顯示在答案中)具有相同類別的元素。然後你就可以得到一流「的listItem」所有元素和值傳遞給你的下一個頁面

希望這個答案是明確的

編輯

以獲得「的listItem所有值'class can do following

var listItems = $('.listItem'); 

listItems.each(function(){ 
    // your code goes here for each record 
}); 
+0

謝謝!這就說得通了。我如何獲得該課程的所有項目?我還需要循環嗎? –

+0

編輯問題檢查它 – Jayanga

+0

好吧,那部分現在工作很好。但它仍在採用最新的變量。我需要一種每次都創建一個不同名稱的隱藏字段的方法? –