2

より多くの(動的な)ラップセグメントを含むフォームがあります。jqueryajaxを介して渡され、DBに格納できるオブジェクトを作成しようとしています。

問題は、多次元オブジェクトを作成する方法ですか?

これは私が持っているコードです

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;          
});

「ws:parentdivs」を取得しています

コンソールログ

でもこうしたい

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} ] }

フォームを送信しようとしている方法が間違っているのでしょうか。

4

1 に答える 1

1

$.eachjQueryオブジェクトを返します。あなたがしたいことは次のようなものです:

$('.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;          
});
于 2012-11-10T23:23:53.220 に答える