2015-11-03 7 views
0

Как добавить объект к существующему объекту javascript? вот пример существующего объекта JavaScriptКак добавить файл-объект в объект javascript?

var dataObj = { 
     TITLE : adtitle, 
     DESC : addesc, 
     PRICE : price, 
     DISCOUNT : discount, 
     CATID : maincatid, 
     STATUS : adstatus, 
     QUANTITY : quantity 
    }; 

теперь у меня есть этот файл объект и я хочу, чтобы добавить его к этому объекту выше.

File { name: "paper.jpg", lastModified: 1445433597723, lastModifiedDate: Date 2015-10-21T13:19:57.723Z, size: 54900, type: "image/jpeg" } 

этот объектный файл является значением от типа входного загрузки файла

var image1 = $('#Image1').prop("files")[0]; 
var image2 = $('#Image2').prop("files")[0]; 

тогда я также необходимо уволить $.post

$.post("<?php echo Yii::app()->createUrl('/post'); ?>", { jsonData: postdata}, function(response){ 
      console.log(response); 
     }); 

все эти сценарии выше срабатывает, когда я clicke a

$('#postit').click(function(e){ 
      //all the scripts from above 
    }); 
+3

'dataObj.FILE =/* ваш файловый объект * /'? – CompuChip

+0

Что делать, если у меня есть 5 или более файлов? как? – sasori

+0

'dataObj.FILES = [file1, file2, file3]' наличие 'file1',' file2', 'file3' является' файлом' вхождения – pistou

ответ

3

Чтобы добавить его к существующему объекту, вы можете просто определить новое свойство на вашем dataObj:

var dataObj = { 
    ... 
}; 
// other work 
dataObj.FILE = $('#Image1').prop("files")[0]; 

Или, если вы можете сделать это в то время dataObj определяется, вы должны сделать это:

var dataObj = { 
    TITLE : adtitle, 
    DESC : addesc, 
    PRICE : price, 
    DISCOUNT : discount, 
    CATID : maincatid, 
    STATUS : adstatus, 
    QUANTITY : quantity, 
    FILE : $('#Image1').prop("files")[0] 
}; 

Если у вас есть несколько File объектов, то вместо него вы должны хранить их в виде массива в вашем dataObj:

dataObj.FILES = $('#Image1').prop("files"); 

Или, может быть, вы работаете с ними один на один раз, и нужно нажать их один в каждом конкретном один в массив на вашем dataObj:

var dataObj = { 
    TITLE : adtitle, 
    DESC : addesc, 
    PRICE : price, 
    DISCOUNT : discount, 
    CATID : maincatid, 
    STATUS : adstatus, 
    QUANTITY : quantity, 
    FILES : [] 
}; 

// Populate the array 
$('#Image1').prop("files").forEach(function(file) { 
    dataObj.FILES.push(file); 
}); 
+0

Что делать, если у меня 5 или более файлов? – sasori

+0

Тогда у вас должен быть массив объектов. Я приведу в пример. –

+0

после того, как я использовал JSON.stringify (dataObj); ... файлов нет, когда я консоль регистрирую его в браузере. – sasori

1

не слишком уверен, что ответ на ваш вопрос, но самый простой ответ:

dataObj.FILE = image1; 
+0

что делать, если у меня есть 5+ файловых объектов? – sasori

Смежные вопросы