jquery ajax post-Datei , mehrere Dateien und text-input
Hallo Jungs mein html-code :
<form action="post.php" enctype="multipart/form-data" method="post">
<input type="text" name="name" id=""><br>
<input type="file" name="poster" id="poster"><br>
<input type="file" name="scene[]" id="scene" multiple><br>
<input type="submit" value="POST">
</form>
als Sie eine einzelne Datei, mehrere Dateien, und ich habe einen text Wert. Dieser Wert 'ajax' mit wollen zu einem Zeitpunkt zu senden. 'JQuery', die ich verwende.
Ich kann nicht in irgendeiner Weise
$(function(){
$('input[type="submit"]').click(function(e){
e.preventDefault();
var file_data = $('#poster').prop('files')[0];
var form = $('form').serialize();
var form_data = new FormData();
$.each($('input[name="scene[]"]'),function(i, obj) {
$.each(obj.files,function(j,file){
form_data.append('photo['+i+']', file);
})
});
form_data.append(form);
form_data.append('file',file_data);
alert(form_data);
$.ajax({
url:'post.php',
cache:false,
contentType:false,
processData:false,
async:false,
data:form_data,
type:'post',
success:function(answ){
$('#result').html(answ);
}
})
})
})
Sah ich auf andere, ähnliche Lösungen, aber es hat mein problem nicht beheben
und vität mein schlechtes Englisch .
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Sie nicht brauchen, um dies manuell zu tun; wenn Sie nur den
form
als DOMElement um dieFormData
Konstruktor dann alle Formular-Werte werden automatisch für Sie.Beachten Sie auch, dass Sie sollten die Haken in die
submit
- Ereignis des Formulars, nicht dieclick
- Ereignis der Schaltfläche Einreichen. Sollten Sie auch entfernen, die Verwendung vonasync: false
als es ist unglaublich schlecht, die Praxis zu verwenden.Mit all das gesagt ist, versuchen Sie dies: