PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS (https://www.php-resource.de/forum/html-javascript-ajax-jquery-css-bootstrap-less/)
-   -   Probleme bei Ajax POST (https://www.php-resource.de/forum/html-javascript-ajax-jquery-css-bootstrap-less/104923-probleme-bei-ajax-post.html)

Vringe 30-01-2015 09:56

Probleme bei Ajax POST
 
Hi,

Ich möchte einen Array per Javascript an eine PHP-Datei senden.
Komischerweise kommt dieser nie an. Wenn ich normale Strings sende, funktioniert alles wunderbar.

Javascript:

Code:

var updateFields = [];
        var fieldValue;
        var fieldName;

        // Radio-Buttons erscheinen mehrmals!
        // Durch jedes Form-Element durchgehen und ausgewählter Wert speichern
        $j( "#optionen :input" ).each(function( index, value ) {
            // Bei Radio oder Checkboxen nur prüfen, ob und wo ausgewählt
            if ($j(value).is(':radio') || $j(value).is(':checkbox')) {
              if($j(value).is(':checked')) {
                  fieldValue = $j(value).val();
                  fieldName = $j(value).attr('name');
                  updateFields[fieldName] = fieldValue;
              }
            } else {
              fieldValue = $j(value).val();
              fieldName = $j(value).attr('name');
              updateFields[fieldName] = fieldValue;
            }
        });

        // Restliche Felder zum Array hinzufügen
        updateFields['abodauer'] = $j('#abodauer').find(":selected").val();
        updateFields['waehrung'] = $j('#waehrung').find(":selected").val();
        updateFields['zahlart'] = $j('#zahlart').find(":selected").val();

        console.log(updateFields); // Debug

        $j.ajax({
            type: "POST",
            url: "include/mutation_helper.php",
            dataType: "JSON",
            data: {func: 'get_prices',fields: updateFields},
            success: function(msg){
              console.log('TEST: '+msg);
            }
        });

Der Array sieht so aus:

http://fs2.directupload.net/images/150130/ch5e7clw.png

Im PHP-Code versuche ich es, mit echo $_POST['fields'] und auch var_dump['fields']. Zurück kommt gar nichts oder NULL.

Wenn ich in den Developer-Tools schaue, was gesendet wird, dann scheint es so, als würde der Array gar nicht übertragen werden..

http://fs1.directupload.net/images/150130/7l3hxoyr.png

http://fs2.directupload.net/images/150130/yvay5swc.png

Was mache ich falsch?

Grüsse
Vringe

h3ll 30-01-2015 11:46

Ich vermute das Problem ist, dass udpateFields ein Array und kein Objekt ist.

Aber es wäre einfacher nachzuvollziehen, wenn du testbaren Code posten würdest, bei dem das Problem auftritt. Zum Beispiel mittels JSFiddle.

Vringe 30-01-2015 12:38

Hallo h3ll,

Das Problem ist bereits gelöst. Anstatt jedes Form Element selber auszulesen und im Array zu speichern, habe ich einfach die jQuery Funktion .serialize() verwendet. Ist um einiges einfacher und funktioniert problemlos, um diesen per Ajax weiterzusenden.

Trotzdem :danke:

Gruss
Vringe


Alle Zeitangaben in WEZ +2. Es ist jetzt 22:05 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG