2017-02-24 14 views
0

複数のソースからJSONオブジェクトを作成する方法を理解できません。 複数のフィールドとドロップダウン、複数のファイルの1つの入力、各ファイルの下に1つのドロップダウン、サイズの2つ目、数量の2つ目、用紙タイプの1つがあります。jQuery - 複数のソースからの配列

私はこのようなオブジェクト内の各ファイルに関するすべての情報を配置する必要があります。

{ 
    "files": [ 
    {"file_name" : "file1", "size" : "10x10", "quantity" : 1, "paper" : "glossy"}, 
    {"file_name" : "file2", "size" : "10x10", "quantity" : 4, "paper" : "glossy"}, 
    {"file_name" : "file3", "size" : "20x30", "quantity" : 3, "paper" : "glossy"}, 
    {"file_name" : "file4", "size" : "30x40", "quantity" : 6, "paper" : "glossy"}, 
    {"file_name" : "file5", "size" : "20x30", "quantity" : 2, "paper" : "glossy"}, 
    ] 
} 

ために二つの異なる配列の、私は、コードを持っているが、それは動作しません。私は1つの配列にデータをプッシュしようとしましたが、結果オブジェクトの構造が間違っています。

function addToPhotoArray() { 
     PhotoArray = []; 
     var items = $('input[name*=files]')[0].files; 
     var filesLength = $('input[name*=files]')[0].files.length; 
     if (filesLength > 0) { 
      for (var i = 0; i < filesLength; i++) { 
       var fileName = items[i].name; 
       PhotoArray.push({ name: fileName }); 
       console.log(fileName); 
      } 
     } 
    } 

    function addToCountArray() { 
     CountArray = []; 
     $('.photo_count option:selected').each(function(){ 
      CountArray.push({ photo_count: $(this).val() }); 
     }); 
    } 

ありがとうございます!

答えて

0

このようなものをお探しですか?

これは良いですか?

var jsonArr = []; 
var json = "[]"; 

function createJson(){ 
    jsonArr = JSON.parse(json); 

    $(".file_container").each(function(index, container){ 
     if($(container).find("input[type='file']").val() != ''){ 
      jsonArr.push(new File(
       $(container).find("input[type='file']").val().replace(/C:\\fakepath\\/i, ''), 
       $(container).find("select#size").val(), 
       $(container).find("select#count").val(), 
       $(container).find("select#paper").val() 
      )); 
     } 
    }); 


    json = JSON.stringify(jsonArr); 
} 

function File(file_name, size, quantity, paper){ //class 
     this.file_name = file_name; 
    this.size = size; 
    this.quantity = quantity; 
    this.paper = paper; 
} 
+0

正確ではない、またはコードが完全にわかりません。 JSFiddleでこのコードを使用しようとしましたが、数量は0のままです。しかしそれは主要な問題ではない。私は理解しようとしています、どのようにこのJSONオブジェクト(最初は空です)をファイルコンテナからのデータで埋めてください。ここでは例のフィドル[リンク](https://jsfiddle.net/cheslavcc/x8fmfefe/) – Cheslav

+0

はい、まさに!ありがとうございました! – Cheslav

関連する問題