/ / Jquery Ajax-Formular mit .on ("submit", - jquery)

Jquery Ajax Formular mit .on ("submit", - jquery

Ich habe eine Seite mit mehreren HTML-Formularen. Nachfolgend finden Sie den Jquery-Code zum Übermitteln der Formulare über einen Ajax-Aufruf. Es führt den Ajax-Aufruf durch, wenn ein Formular im Content Div gesendet wird. Es wird auch ausgelöst, nachdem das Formular über Ajax neu geladen wurde. Ich kann nicht herausfinden, wie ich die Formulardaten an die Handlerfunktion übergeben kann. Jede Hilfe wäre sehr dankbar.

Zur Klarstellung: var formData = $ (this) .serializeArray (); funktioniert nicht. formData erhält keine Werte aus den Formulardateien.

$.ajaxSetup({
url: "ajax.php",
type: "POST",
contentType: "application/json; charset=utf-8",
datatype: "json",
cache: false,
timeout : 5000
});
$("#content").on("submit", function(e) {
e.preventDefault();
var formData = $(this).serializeArray();
$.ajax({
data: formData,
success: function(jsonData) {
htmlData = jQuery.parseJSON(jsonData);
$.each(htmlData, function(id, data){
$("#"+id).html(data);
});
}
});
};

AKTUALISIEREN:

Wenn ich mich ändere

$("#content").on("submit", function(e)

zu

$("#content").on("submit", "form", function(e)

Die Formulardaten werden serialisiert und die Ajax-Funktionfunktioniert wie beabsichtigt. Das neue Problem besteht darin, dass das Submit-Ereignis die Funktion nicht mehr auslöst, wenn das Formular nicht vollständig ist und erneut (über Ajax) in die Inhaltsabteilung geladen wird. Ich habe versucht, .on () so zu konfigurieren, dass es so funktioniert wie .live () in früheren Versionen von Jquery. Nach dem Ajax-Reload wird das Submit-Ereignis erneut gebunden. In diesem Fall bindet .on () nicht erneut. Hoffe das macht einen Sinn!

Antworten:

-1 für die Antwort № 1

Sie müssen die übergebenen Variablen in ajax.php über $ _POST-Globals erhalten.

Beispielsweise:

$myVar = $_POST["field_name"];