Sto utilizzando FormData per caricare i file. Voglio anche inviare una serie di altri dati.Posso aggiungere un array a 'formdata' in javascript?
Quando invio solo l'immagine, funziona correttamente. Quando aggiungo del testo al formdata, funziona bene. Quando provo ad allegare l'array 'tags' qui sotto, tutto il resto funziona bene ma non viene inviato alcun array.
Eventuali problemi noti con FormData e gli array di aggiunta?
Instantiate formdata:
formdata = new FormData();
La matrice creo. Console.log mostra tutto ciò che funziona bene.
// Get the tags
tags = new Array();
$('.tag-form').each(function(i){
article = $(this).find('input[name="article"]').val();
gender = $(this).find('input[name="gender"]').val();
brand = $(this).find('input[name="brand"]').val();
this_tag = new Array();
this_tag.article = article;
this_tag.gender = gender;
this_tag.brand = brand;
tags.push(this_tag);
console.log('This is tags array: ');
console.log(tags);
});
formdata.append('tags', tags);
console.log('This is formdata: ');
console.log(formdata);
Come inviarlo:
// Send to server
$.ajax({
url: "../../build/ajaxes/upload-photo.php",
type: "POST",
data: formdata,
processData: false,
contentType: false,
success: function (response) {
console.log(response);
$.fancybox.close();
}
});
perché vuoi aggiungere oggetti da un array? Usa invece un oggetto. – Musa
Sospetto uno sfondo PHP. Gli array non funzionano in questo modo in Javascript. – kapa
Questo è esattamente :) Userò un oggetto. –