2012-10-28 2 views
0

시간표 작성 위젯을 웹 사이트에 준비하고 있습니다. 주제는 개별 DIV로 묶여 있으며 테이블의 열까지 끌어옵니다. 예를 참조하십시오 : http://jsfiddle.net/x5T4h/2/jQuery는 클래스 이름 목록을 가져와 숨겨진 양식에 추가합니다.

가 지금은 테이블

<input type="hidden" name="monday" value=""> 
<input type="hidden" name="tuesday" value=""> 
<input type="hidden" name="wednesday" value=""> 
<input type="hidden" name="thursday" value=""> 
<input type="hidden" name="friday" value=""> 
<input type="hidden" name="saturday" value=""> 
<input type="submit" name="submit" class="btn green disabled" value='Save'> 

그리고 각 주제 DIV 아래 숨겨진 입력 무리가 (이전의 도움에 감사하는)가 그것으로 클래스는 <div id="drag" class="21">Biology</div>

인가 ID의 예입니다 거기에 어떤 방법으로 내가 열에있는 각 DIV의 클래스를 가져 와서 숨겨진 입력에 순서대로 추가 할 수있는 자바를 얻을 수 있습니다.

꽤 복잡해 보입니다. 아무런 도움도받지 못해서 도움이됩니다. 이미

내 JS :

<script> 
$(function() { 
    $("ul li").each(function(){ 
     $(this).draggable({ 
      helper: "clone" 
     }); 
    }); 

    $(".day").droppable({ 
     activeClass: "ui-state-hover", 
     hoverClass: "ui-state-active", 
     accept: ":not(.ui-sortable-helper)", 
     drop: function(event, ui) { 
      var targetElem = $(this).attr("id"); 

      $(this).addClass("ui-state-highlight"); 
      if($(ui.draggable).hasClass('draggable-source')) 
       $(ui.draggable).clone().appendTo(this).removeClass('draggable-source'); 
      else 
       $(ui.draggable).appendTo(this); 

      console.log(this.id) 
     } 
    }).sortable({ 
     items: "li:not(.placeholder)", 
     sort: function() { 
      $(this).removeClass("ui-state-default"); 
     } 
    }); 
}) 
</script> 

답변

2

mhhh이 ... 약간의 triggy 것 같습니다 ... 그래서, 당신이 값을 원하는 형식 (아직 검증되지 않은) 명확하지

window.readDays = function() { 
    $('table#days .day').each(function() { 
     var vals = []; 
     $('.ui-draggable > div', $(this)).each(function() { 
      vals.push($(this).attr('class')); 
     }); 
     $('input[name="'+ $(this).attr('id') +'"]').val(vals.join(',')); 
    }); 
} 
+0

에 배열을 보낼 필요가 있는데,이 경우에 아약스를 사용하여 모든 데이터를 제출하는 것입니다 나는이 함수를 호출한다. 정렬 할 수있는 끝 부분에'.sortable ({....}). readThis();'를 추가했다. 생성 된 소스를 볼 때 작동하지 않는 것 같습니다. 당신이 데이터 – user1599318

+0

라고 불러 주셔서 감사합니다. 저에게 효과가있는 것 같지 않지만 잘못된 일을하고 계시 며, '경고 (vals)'를 받고 onclick 기능을 실행하지만 나는 nada를 얻는다 – bukart

+0

에 액세스하고 싶을 때마다 – user1599318

1

을이 시도 쉼표로 구분하여 시작점으로 사용합니다. 이것이 당신이 어떤 방식으로 이것을 원하는지 확실하지 않습니다.

$('#days .day').each(function(){ 
    var day=this.id; 
    var items= $(this).find('div').map(function(){ 
     /* text of item seems like only place currently to retrieve the title of item*/ 
     return $(this).text(); 
    }).get() 
    $('input[name="'+ day+'"]').val(items.join(',')); 
}); 

DEMO :http://jsfiddle.net/x5T4h/5/

기회는 당신이 경우에도 약해야 숨겨진 입력, 그냥 서버

+0

map (function() {''식별자가 필요하지만 'items'대신에 '를 찾았습니다')? – user1599318

+0

은' var' 여기가 작동하는 피들 http://jsfiddle.net/x5T4h/5/ – charlietfl

+0

완벽하고 잘 작동합니다. 도움을 주셔서 감사합니다! – user1599318

관련 문제