Ergebnis 1 bis 7 von 7
Like Tree1Likes
  • 1 Post By terra75

Thema: JSON aufschlüsseln und neu anordnen

  1. #1
    Avatar von terra75
    terra75 ist offline Doppel-As
    registriert
    19-08-2015
    Beiträge
    121

    JSON aufschlüsseln und neu anordnen

    Moin zusammen und schöne Weihnachten !

    Ich stehe grade irgendwie auf dem Schlauch und benötige mal eure Hilfe.

    Ich habe hier ein, aus einem Formular bestehendes Array. Übergabe mittels JS $(form).serialize().

    Code:
    order_firstname=test&order_lastname=user&order_mail=&order_clientnr=&DAY_0112=Essen+1&DAY_0212=Essen+1&DAY_0312=Essen+1&DAY_0412=Essen+1&DAY_0712=Essen+1&DAY_0812=Essen+1&DAY_0912=Essen+1&DAY_1012=Essen+1&DAY_1112=Essen+1&DAY_1412=Essen+1&DAY_1512=Essen+1&DAY_1612=Essen+1&DAY_1712=Essen+1&DAY_1812=Essen+1&DAY_2112=Essen+1&DAY_2212=Essen+1&DAY_2312=Essen+1&DAY_2412=Essen+1&DAY_2812=Essen+1&DAY_2912=Essen+1&DAY_3012=Essen+1&DAY_3112=Essen+1
    Dieses möchte ich gerne an eine PHP Datei via Ajax übergeben. Soweit wäre es klar. data: $(form).serialize(),

    Jetzt möchte ich es mir aber doch einfacher machen und das ganze Array so umstricken, das es sauber formatiert an das PHP Script übergeben werden kann. Soll heißen, das alle DAY_ Keys separat in das Array umgewandelt und eingetragen werden sollen.

    Code:
    [0]
     -> [order_firstname] = [...]
     -> [order_lastname] = [...]
     -> [order_mail] = [...]
     -> [order_clientnr] = [...]
        -> [DAY]
           -> [0112] = [Essen 1]
           -> [0212] = [Essen 1]
    Sprich, ich müsste in PHP nur die Anzahl an Einträge in DAY auslesen und könnte die dann weiterschicken.

    Nur wie stricke ich das vorhandene Array um, das ich zum unterem Ergebnis komme.
    Ja, alle KEYs mit DAY_ erfassen und separieren. Aber wie?

    Lieben Gruß,

    Terra
    Geändert von terra75 (25-12-2020 um 20:10 Uhr)

  2. #2
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.864

    AW: JSON aufschlüsseln und neu anordnen

    Auch schöne Weihnachten!
    Am bequemsten sind solche Sachen doch als normaler HTTP Request zu übertragen, wie beim <form>. Wenn das per AJAX gehen soll empfiehlt sich zur Stringifizierung m. E. FormData() und das kann dann in PHP mit dem gewohnten $_POST eingelesen werden.
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png

  3. #3
    Avatar von terra75
    terra75 ist offline Doppel-As
    registriert
    19-08-2015
    Beiträge
    121

    AW: JSON aufschlüsseln und neu anordnen

    Moin,

    Vielleicht habe ich mich falsch ausgedrückt. Wie ich Informationen von PHP an JS und zurück übertrage, ist mir klar.

    Ich möchte nur unter JS das Json Array umwandeln, das alle DAY_ Einträge in ein weiteres UnterArray geschoben werden um damit besser arbeiten zu können.

    Gruß, Terra

  4. #4
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.864

    AW: JSON aufschlüsseln und neu anordnen

    Für das Verschieben sollten die Daten aber in eine Variable vorliegen, sonst würde es sehr aufwendig. JSON ist ja nur ein Text-String. Diesen in eine Variable zu schieben geht mit JSON.parse()
    Das sollte das Gesuchte sein.

    Wichtig: das taugt nicht zur Übergabe an PHP! Dafür ist JSON die beste Variante. Du kannst keine JS Variablen/Objekte an PHP übergeben. Zwischen Browser und Server läuft das nicht.
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png

  5. #5
    Avatar von terra75
    terra75 ist offline Doppel-As
    registriert
    19-08-2015
    Beiträge
    121

    AW: JSON aufschlüsseln und neu anordnen

    Soooo,

    bin nochmal ganz tief in mich gegangen und habe mal die grauen Zellen angestrengt und so mit eine Lösung gefunden.

    Prinzipiell ist es ja erstmal egal, wie man die Informationen an das PHP Script übergibt. In meinen Fall war ich mal so frei und hab $_REQUEST verwendet um beide Varianten erstmal zu besitzen. So mit konnte ich direkt am PHP Script testen.

    Übergeben wird direkt in der URL folgendes: (NUR ZUM TESTEN!)
    Code:
    sendmail.php?mail=bestellung&order_lastname=kevin&order_mail=&order_clientnr=&DAY_0112=Essen+1&DAY_0212=Essen+1&DAY_0312=Essen
    Die Lösung meines Problems sieht in PHP wie folgt aus.
    PHP-Code:
            $data $_REQUEST;

            foreach (
    $data as $key => $value) {
                if (
    substr$key 04) == 'DAY_') {
                                    
                
    $data['day'][substr$key , -44)] = $value;
                unset (
    $data[$key]);    

                }
            } 
    Ob es jetzt sauber Programmiert ist, stell ich einfach mal in Frage. Vielleicht sieht jemand in dem kurzen Script Verbesserungsbedarf und darf es dann hier posten

    Ausgabe:
    Code:
    Array
    (
        [mail] => bestellung
        [order_lastname] => kevin
        [order_mail] => 
        [order_clientnr] => 
        [day] => Array
            (
                [0112] => Essen 1
                [0212] => Essen 1
                [0312] => Essen 1
                [0412] => Essen 1
                [0712] => Essen 1
                [0812] => Essen 1
                ....
    Also, genau das, was ich wollte. So mit kann ich jetzt den SubArray "day" ohne großen Probleme bearbeiten, egal welche Daten als Key dort drin stehen. (sind ja immer andere)

    Trotzdem, vielen Dank!

    Terra

  6. #6
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.864

    AW: JSON aufschlüsseln und neu anordnen

    War trotz alledem aber keine Frage zu JS. Daten bleiben trotzdem eine Textwurst. Erst PHP löst das auf. Das ist hoffentlich auch hängen geblieben.
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png

  7. #7
    Avatar von terra75
    terra75 ist offline Doppel-As
    registriert
    19-08-2015
    Beiträge
    121

    AW: JSON aufschlüsseln und neu anordnen

    Zitat Zitat von mikdoe Beitrag anzeigen
    War trotz alledem aber keine Frage zu JS. Daten bleiben trotzdem eine Textwurst. Erst PHP löst das auf. Das ist hoffentlich auch hängen geblieben.
    Dachte, das hätte man schon in JS genau so lösen können. Hab halt dazu nichts gefunden, darum ging die frage ins JS Forum.


    Terra
    mikdoe likes this.

Ähnliche Themen

  1. PHP Array neu Anordnen
    Von bosko im Forum Serverseitige Programmierung
    Antworten: 1
    Letzter Beitrag: 02-04-2020, 17:17
  2. AJAX und JSON - ein Array Object der JSON laden nicht alle
    Von kleene-chris85 im Forum JavaScript
    Antworten: 1
    Letzter Beitrag: 24-07-2012, 01:57
  3. Formularfelder anordnen
    Von XaTrIxX im Forum JavaScript
    Antworten: 1
    Letzter Beitrag: 08-10-2005, 00:33
  4. Bilder anordnen
    Von planet4 im Forum CSS und (X)HTML
    Antworten: 4
    Letzter Beitrag: 10-02-2005, 23:34
  5. alphabetisch anordnen
    Von Bigman007 im Forum Serverseitige Programmierung
    Antworten: 3
    Letzter Beitrag: 07-12-2004, 09:28

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •