Hallo,
Ich habe folgendes Problem,
Ich habe ein Formular mit unbekannte Input-Felder, die ich mit Ajax Type: POST an den Server sende.
Soweit so gut Funktioniert es auch wunderbar, jetzt kommen wir zum "aber".
Es wird nicht das ganze Formular abgesendet. Wie ich gelesen haben gibt es ein Limit. (belehrt mich gerne wenn ich falsch Liege.)
Wenn ich das Formular einlese und ausgebe z.B über alert(); wird mir das ganze Formular mit den Input Feldern richtig angezeigt.
habe schon viele Varianten Ausprobiert Formular alt mit dem Neuen zu vergleichen um nur das neu eingetragene Input-Feld zu senden.
habe es nicht hinbekommen, die beiden Array zu vergleichen, und den veränderten wert zu übertragen.
( In der PHP Datei werden 6 Felder Überprüft. [Datum, Anfang, Ende, Pause] die als Array gelistet werden z.B Input[0Datum]..... + Input[1Datum].... und so weiter.)
Da ich Leider diese Variante nicht hinbekommen habe, (Am Liebsten so hätte.) habe ich mir was anderes Überlegt.
Ich Lese das Formular nach Inhalt aus und lasse es durch [$.map] als schleife laufen.
Mein Limit 6 Einträge.
Wird das Limit Erreicht so sende die Daten.
Funktioniert Eingeschränkt da sich die schon Eingentragenden Daten nicht Löschen lassen.
Das heißt, Ajax schreibt eine Liste die immer Länger wird und so wiederholt sich der Vorgang doppelt und dreifach. (Sinnlos)
habt ihr eine Idee, wie ich das am Besten löse.?
Ich bin neue in Sache Javascript und versuche bevor ich etwas Schreibe andere Wege zu finden meine Fragen zu beantworten.
Ich habe folgendes Problem,
Ich habe ein Formular mit unbekannte Input-Felder, die ich mit Ajax Type: POST an den Server sende.
Soweit so gut Funktioniert es auch wunderbar, jetzt kommen wir zum "aber".
Es wird nicht das ganze Formular abgesendet. Wie ich gelesen haben gibt es ein Limit. (belehrt mich gerne wenn ich falsch Liege.)
Wenn ich das Formular einlese und ausgebe z.B über alert(); wird mir das ganze Formular mit den Input Feldern richtig angezeigt.
habe schon viele Varianten Ausprobiert Formular alt mit dem Neuen zu vergleichen um nur das neu eingetragene Input-Feld zu senden.
habe es nicht hinbekommen, die beiden Array zu vergleichen, und den veränderten wert zu übertragen.
( In der PHP Datei werden 6 Felder Überprüft. [Datum, Anfang, Ende, Pause] die als Array gelistet werden z.B Input[0Datum]..... + Input[1Datum].... und so weiter.)
Da ich Leider diese Variante nicht hinbekommen habe, (Am Liebsten so hätte.) habe ich mir was anderes Überlegt.
Ich Lese das Formular nach Inhalt aus und lasse es durch [$.map] als schleife laufen.
Mein Limit 6 Einträge.
Wird das Limit Erreicht so sende die Daten.
Funktioniert Eingeschränkt da sich die schon Eingentragenden Daten nicht Löschen lassen.
Das heißt, Ajax schreibt eine Liste die immer Länger wird und so wiederholt sich der Vorgang doppelt und dreifach. (Sinnlos)
habt ihr eine Idee, wie ich das am Besten löse.?
Ich bin neue in Sache Javascript und versuche bevor ich etwas Schreibe andere Wege zu finden meine Fragen zu beantworten.
Code:
jQuery(document).ready(function($) { var objects = {}; var form = new Object(); var form = $('#Speichern').serializeArray(); $.each(form, function(index, item) {objects[item.name] = [item.value]; }); var formstring = JSON.stringify(objects); $('#Speichern').on('change', function() { var object = {}; var array = $('#Speichern').serializeArray(); var a = 0; var i = 6; $.each(array, function(index, item) { a++; var zahl = a == i ; object[item.name] = [item.value]; if(zahl == true) { var datastring = JSON.stringify(object); i= i+6; $.ajax({ type: 'post', cache: false, async:true, contentType: "application/x-www-form-urlencoded; charset=UTF-8", url: "sende.php", type: "post", dataType: "html", data: {datastring}, success: function(data) { $.each(JSON.parse(data), function( key, value ) {$( "#" + key ).text(value);}); }, error: function(xhr, status, error){ alert("Fehler bei der Abfrage"); alert(error); } }); } }); return false; }); });
Kommentar