Ankündigung

Einklappen
Keine Ankündigung bisher.

Json Array Probleme

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Json Array Probleme

    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.

    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;
    
    });
    });

  • #2
    Ehmmm... warum der Aufwand? Um ein Formular abzuschicken reicht:
    Code:
    $.post('send.php', $('#myForm').serialize())

    Kommentar


    • #3
      Zitat von hellbringer Beitrag anzeigen
      Ehmmm... warum der Aufwand? Um ein Formular abzuschicken reicht:
      Code:
      $.post('send.php', $('#myForm').serialize())

      Das Formular wird ja gesendet nur nicht Vollständig.

      Kommentar


      • #4
        Ich würde mal JavaScript weglassen und schauen ob das Problem ohne JavaScript auch auftritt.

        Davon abgesehen HTTP-Request analysieren, debuggen was in PHP ankommt, usw.

        Kommentar


        • #5
          Den Gedanken hatte ich auch, habe ich überprüf, auch ohne JavaScript. Daher mein Gedanke, es nach einander zu verschicken, doch [datastring] noch [Object] lässt sich wären des Durchlauf nicht löschen, dadurch sende es doppelt und dreifach.

          Kommentar


          • #6
            Du hast es überprüft, und was ist dabei rausgekommen?

            Kommentar


            • #7
              Zitat von hellbringer Beitrag anzeigen
              Du hast es überprüft, und was ist dabei rausgekommen?
              Ohje hab den Fehler gefunden.
              Bin alles nochmal durch gegangen, der Fehler lag natürlich bei der PHP Datei, hatte es aber übersehen beim ersten Test durch lauf.
              War mir sicher es liegt an Ajax.
              Vielen Dank hellbringer für deine Bemühungen mir zu helfen.
              Schönen Herren Tag noch.

              Kommentar

              Lädt...
              X