jQuery Dialog und Ajax Submit

Superfreak007

Grünschnabel
Hallo, ich habe folgendes Problem:

Ich habe einen jQuery Dialog welcher ein Formular enthält.
Wird dieser Dialog geöffnet, so wird das Formular angezeigt.

Bei einem Klick auf den Button 'Eingabe beenden' soll eine ajax Funktion die Daten des Formulares in die Datenbank schreiben.
LEider wird diese Funktion nicht ausgeführt.

Hier kommt der JS-Code:

Code:
$('#dialog').dialog({
	bgiframe: true,
	draggable: false,
	resizable: false,
	autoOpen: false,
	modal: true,
	width: 750,
			
	buttons: {
		'Eingabe beenden': function() {
			$("#dialog > form").submit(function(){
				$.ajax({
					type: "POST",
					url: "./help/setData.php",
					data: ({	
						art:$('#art').val(), datum:$('#datum').val(),
						pid:$('#persoID').val(), verwendung:$('#verwendung'), betrag:$('#betrag')
					}),
					success: function(){
						alert('formular abgesendet');
					},
				});
					return false
			});
				//$(this).dialog('close');
		},
			Abbrechen: function() {
				$(this).dialog('close');
			},
		}			
	});

Vlt kann mir ja jmd helfen, das Problem zu lösen.

Das Form selbst hat keinen submit-Button, dies soll der 'Eingabe Beenden' button übernhemen.
Das action-Attribut wurde freigelassen, und bei 'method' steht POST drin
 
Habe die lösung gefunden, es lag am nicht Serialisiertem Formualar.

Hier nun der quellcode, für alle die das auch mal so in dieser art und weise machen wollen.

Dialog initialisieren
Code:
$('#dialog').dialog({
	bgiframe: true,
	draggable: false,
	resizable: false,
	autoOpen: false,
	modal: true,
	width: 750,

	//Buttons definieren inkl. Funktion
	buttons: {
		'Eingabe beenden': function(){
			$('#formular').submit();
			$('#formular')[0].reset();
			$(this).dialog('close');
		},
		Abbrechen: function() {
			$('#formular')[0].reset();
			$(this).dialog('close');
		},
		'weiteren Datensatz erfassen': function(){
			$('#formular').submit();
			$('#formular')[0].reset();
		},
	}			
});

//Aktion beim klick auf "submit" festlegen
Code:
$('#formular').submit(function(){
	dataString = $('#formular').serialize();
	//Daten per Ajax in die DB schreiben
	$.ajax({
		type: "POST",
		url: "./help/setData.php",
		data: dataString,
		success: function(){
		}
	});
	//Damit kein refresh erfolgt
	return false
});

Ich weiß zwar nicht ob das wirklich der richtige weg ist, aber es geht.
Vlt kann sich ja noch jmd der richtig Ahnung hat dazu äußern, und mir evtl ne Begründung geben, warum ich die Formulardaten serialisieren muss wenn ich sie per ajax in die DB schreiben will.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück