Jquery / Ajax Form Submission (enctype = "mehrteilig / Formulardaten"). Warum verursacht 'contentType: False' einen undefinierten Index in PHP?
Ich habe versucht, ein Formular mit enctype = "multipart / form-data" einzureichen. Ich habe diese Einstellung, weil das Formular JPEG / PNG-Uploads beinhalten wird, sobald ich die Ajax-Übermittlung für Texteingaben herausgefunden habe.
Das PHP funktioniert einwandfrei, wenn Sie auf das Skript verweisen, indem Sie eine Aktion innerhalb des HTML-Formulars ausführen.
Die Formulardaten werden von der folgenden Abfrage anscheinend korrekt abgerufen, da in der Warnzeile Folgendes angezeigt wird: productName = Test + Name & productDescription = Test + Beschreibung & OtherProductDetails =
Die zurückgegebenen Daten, die von der Funktion jquery success in meinem HTML-Code gedruckt wurden, sind ein PHP-Fehler, der besagt: Undefinierter Index: Produktname
Entfernen von contentType: false behebt das Problem.
Wenn ich jquery / ajax multipart / form-data Submission google, enthalten die Top-Hits zumindest hauptsächlich 'contentType: false'. Könnte mir bitte jemand den Grund erklären?
http://digipiph.com/blog/submitting-multipartform-data-using-jquery-and-ajax http://hayageek.com/jquery-ajax-form-submit/ Senden von mehrteiligen / Formulardaten mit jQuery.ajax
In der jquery-API-Dokumentation heißt es: contentType (Standard: 'application / x-www-form-urlencoded; charset = UTF-8') Typ: String Verwenden Sie diesen Inhaltstyp, wenn Sie Daten an den Server senden.
Warum müssen wir es für eine Übermittlung von mehrteiligen / Formulardaten auf false setzen? Wann wäre die falsche Einstellung überhaupt nötig?
Abfrage:
$("#addProductForm").submit(function (event) {
event.preventDefault();
//grab all form data
var formData = $(this).serialize();
$.ajax({
url: 'addProduct.php',
type: 'POST',
data: formData,
async: false,
cache: false,
contentType: false,
processData: false,
success: function (returndata) {
$("#productFormOutput").html(returndata);
alert(formData);
},
error: function () {
alert("error in ajax form submission");
}
});
return false;
});