Ich benutze jQuery und Ajax für meine Formulare, um Daten und Dateien zu übermitteln, aber ich bin nicht sicher, wie man sowohl Daten als auch Dateien in einem Formular sendet?
Ich tue derzeit fast das Gleiche mit beiden Methoden, aber die Art und Weise, in der die Daten in einem Array gesammelt werden, ist anders, die Daten verwenden .serialize();
aber die Dateien verwenden = new FormData($(this)[0]);
Ist es möglich, beide Methoden zu kombinieren, um Dateien und Daten in einem Formular über Ajax hochladen zu können?
Daten jQuery, Ajax und html
$("form#data").submit(function(){
var formData = $(this).serialize();
$.ajax({
url: window.location.pathname,
type: 'POST',
data: formData,
async: false,
success: function (data) {
alert(data)
},
cache: false,
contentType: false,
processData: false
});
return false;
});
<form id="data" method="post">
<input type="text" name="first" value="Bob" />
<input type="text" name="middle" value="James" />
<input type="text" name="last" value="Smith" />
<button>Submit</button>
</form>
Dateien jQuery, Ajax und html
$("form#files").submit(function(){
var formData = new FormData($(this)[0]);
$.ajax({
url: window.location.pathname,
type: 'POST',
data: formData,
async: false,
success: function (data) {
alert(data)
},
cache: false,
contentType: false,
processData: false
});
return false;
});
<form id="files" method="post" enctype="multipart/form-data">
<input name="image" type="file" />
<button>Submit</button>
</form>
Wie kann ich die oben genannten Punkte kombinieren, so dass ich Daten und Dateien in einem Formular über Ajax senden kann?
Mein Ziel ist es, in der Lage sein, alle diese Form in einem Beitrag mit Ajax zu senden, ist es möglich?
<form id="datafiles" method="post" enctype="multipart/form-data">
<input type="text" name="first" value="Bob" />
<input type="text" name="middle" value="James" />
<input type="text" name="last" value="Smith" />
<input name="image" type="file" />
<button>Submit</button>
</form>