2012-11-10 5 views
2

더 많은 (동적) 줄 바꿈 세그먼트를 포함하는 양식이 있습니다. jquery ajax를 통과하여 DB에 저장할 수있는 객체를 작성하려고합니다.입력 필드를 통해 js 객체를 반복 작성

문제는 다차원 객체를 만드는 방법입니까?

내가 가진

DB 코드 :

formID    wrapSegmentID   
    pkt     formID FK 
    hldy    st 
         tt 
         rt 

HTML :

:

<form name="uniqID>      
    <div name="ws" class="wrapSegment"> 
    <input name="st"> 
    <input name="tt"> 
    <input name="rt"> 
    </div> 
    <div name="ws" class="wrapSegment"> 
    <input name="st"> 
    <input name="tt"> 
    <input name="rt"> 
    </div> 

    <!--it can be more .wrapSegment divs--> 
    <!--it can be more .wrapSegment divs--> 
    <!--it can be more .wrapSegment divs--> 

<label> 
    <input class="hldy" type="checkbox"> hldy 
</label> 
<label> 
    <input class="pkt" type="checkbox"> pkt 
</label> 
<a class="save">Save</a> 
</form> 

JS

$('.hero-unit').on('click','.save', function(){ 
    var day = { 
     dayID : "id", 
     pkt: "pkt", 
     hldy: "hldy", 
     ws: $(".wrapSegment").each(function() {       
       var inputs = $(this).children(":input"); 
       var wsObj = $.map(inputs, function(item, y) { 
         return { 
          key: item.name, 
          value: $(item).val() 
         }; 
       });    
       return (wsObj); 
     }) 
    }; 



console.log(day); // 
return false;   
}); 

나는 "부모 div의 WS"를 얻고있다

console log

하지만 어쩌면이

Object { dayID="id", pkt=0, hldy=1, ws=[Object { Object { key="1",value="1"}, Object { key=2, value=2}, {Object { key="1",value="1"}, Object { key=2, value=2} ] } 

처럼를 원하는이 방법은 내가 잘못 양식을 제출하려고합니까?

답변

1

$.each은 jQuery 객체를 반환합니다. 당신이하고 싶은 것은 다음과 같습니다 :

$('.hero-unit').on('click','.save', function(){ 
    var wsObj = []; 
    $(".wrapSegment").each(function() {       
     var inputs = $(this).children(":input"); 
     var inputArray = $.map(inputs, function(item, y) { 
       return { 
          key: item.name, 
          value: $(item).val() 
         }; 
       });  
     wsObj.push(inputArray);  
    }); 
    var day = { 
     dayID : "id", 
     pkt: "pkt", 
     hldy: "hldy", 
     ws: wsObj 
    }; 

console.log(day); // 
return false;   
}); 
+0

아니요, 나는 비어있는 물건을 얻고 있습니다. – InTry

+0

정말 이니? 이 바이올린은 나를 위해 작동합니다 : http://jsfiddle.net/mccannf/BxEdt/4/ – mccannf

+0

wsObj.push (inputArray)를 추가했습니다; 나는 그것을 시험해야한다 – InTry