Um den Javascript/Jquery Quellcode nicht zu sehr wachsen zu lassen, möchte ich auf zwei alternative (und kürzere) Möglichkeiten bei jQuery hinweisen.
Um einen AJAX POST abzusetzen muss man nicht unbedingt mit jQuery.ajax… arbeiten. Es reicht wenn man
$.post("/rabattSpeichern", function(data){
alert(data); // Ausgabe des Antwortstrings
});
verwendet.
Was ich jetzt erst entdeckt habe, ist das JSON Format. Es ist sehr einfach zu verwenden und man kann damit Traffic sparen, da nur Daten, ganz ohne HTML-Overhead, übertragen werden. Meist möchte man ja nicht unbedingt nur einen Wert zurück geben, sondern viele. Mit JSON kann man Arrays aus PHP direkt an Javascript übergeben, so dass man auch große Datenmengen zurück geben kann, ohne dass es langsam wird.
PHP Array:
Array ( [ok] => Gespeichert [daten] => Array ( [a1] => 1 [a2] => 2 ) )
function rabattSpeichern(id, rabatt) {
var data = {'id': id,'rabatt':rabatt };
jQuery.post('/rabattSpeichern', data, function (JSON) {
alert(JSON.ok); // Gibt "Gespeichert" zurück
jQuery.each(JSON.daten, function(key, data)
{
alert(key+' '+data);
});
}, "json");
// wichtig ist der letzte Parameter "json", damit weiß jQuery,
// dass die zurück kommenden Daten im JSON-Format vorliegen
}