Saaaalve a tutti!!
Il quesito che vi pongo oggi sembra alquanto semplice, ma la soluzione più ovvia non mi funziona :P
Dunque: ho una pagina piena di form che servono a caricare file. Al premere del pulsante submit il file viene caricato via Ajax. Ecco l'html del form (generato):
codice:
INVIA FILE DA STAMPARE
<form name="inviaLavoroForm45" method="post"
id="inviaLavoroForm45" enctype="multipart/form-data">
<input type="hidden" name="quale" value="45" />
<input type="file" name="file45"/>
</form>
INVIA LAVORO
<progress style="width: 280px;" max="100"></progress>
e questo è il pezzo di AJAX che prende i dati e carica tutto:
codice:
function inviaLavoro(quale) {
var formData = new FormData($('#inviaLavoroForm'+quale));
$.ajax({
url: 'upload2.php',
type: 'POST',
xhr: function() { //
var myXhr = $.ajaxSettings.xhr();
if(myXhr.upload){ // Check if upload property exists
myXhr.upload.addEventListener('progress',progressHandlingFunction, false);
}
return myXhr;
},
//Eventi Ajax
//beforeSend: beforeSendHandler,
success: function (output, stato) { $('#feedbackLavoro'+quale).html(output); },
error: function () { alert("Errore"); },
// Form data
data: formData,
//Options to tell jQuery not to process data or worry about content-type.
cache: false,
contentType: false,
processData: false
});
}
La parte che non mi funziona è quella in grassetto. Se uso
codice:
var formData = new FormData($('form')[0]);
funziona con il primo form, ma ovviamente gli altri no... Come fare ad accedere a un determinato form tramite id o name? :-(