• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Rozbicie zagnieżdżonej tablicy do określonej formy PHP

Object Storage Arubacloud
0 głosów
337 wizyt
pytanie zadane 2 sierpnia 2017 w PHP przez sc4rface Dyskutant (7,710 p.)

Siema, jestem dosyć świeży w PHP, bardziej przemawia do mnie front-end, ale muszę to wykonać w ramach rozwijania swoich skilli. Tak czy inaczej, potrzebuję rozbić tą tablicę:

    [section] => Array
        (
            [0] => Array
                (
                    ['sectionwidth'] => 525
                    ['sectionheight'] => 500
                    ['bg'] => eaeaea
                    ['sectioncolor'] => c0c0c0
                    ['input'] => Array
                        (
                            [0] => Array
                                (
                                    ['inputtext'] => test
                                    ['inputwidth'] => 505
                                )

                            [3] => Array
                                (
                                    ['inputtext'] => test2
                                    ['inputwidth'] => 505
                                )

                        )

                )

            [1] => Array
                (
                    ['sectionwidth'] => 525
                    ['sectionheight'] => 500
                    ['bg'] => 222222
                    ['sectioncolor'] => ffffff
                    ['input'] => Array
                        (
                            [1] => Array
                                (
                                    ['inputtext'] => test3
                                    ['inputwidth'] => 505
                                )

                            [2] => Array
                                (
                                    ['inputtext'] => test4
                                    ['inputwidth'] => 505
                                )

                        )

                )

        )

Do takiej formy ostatecznej, jak mogę to zrobić?

<div style="width: '.$sectionwidth.'px; height: '.$sectionheight.'px; background: #'.$bg.'; color: '.$sectioncolor.'"><p style="width: '.$inputwidth.'px;">'.$inputtext.'</p></div>

Używając foreach'a na wartościach podzbioru input, otrzymuję informację, że próbuję zamienić tablicę na string.

1 odpowiedź

0 głosów
odpowiedź 2 sierpnia 2017 przez Arkadiusz Waluk Ekspert (287,950 p.)
Jeśli dobrze odczytałem tablicę i dobrze rozumiem to co chcesz zrobić: https://3v4l.org/6iR4k - tak na szybko.

Można to sobie oczywiście zrobić czytelniej, inaczej ponazywać, albo np. przypisać do konkretnych zmiennych przez list() jeśli potrzebujesz.
komentarz 2 sierpnia 2017 przez Arkadiusz Waluk Ekspert (287,950 p.)

No rozumiem, dlatego pytałem jak przesyłasz dane. Powiedziałeś, że ukrytymi inputami, więc rozumiem że jako formularz wysyłasz do skryptu PHP, tak? Jeśli tak, to w skrypcie PHP automatycznie dostaniesz prawie taką samą tablicę jak tą, którą ja generuje statycznie.

Aż pofatygowałem się i zrobiłem mały test: http://others.waluk.pl/forum/form.html - tu jest podstawiony jakiś wycinek HTMLa z ukrytymi inputami, wygenerowany przez JS z Codepena (nie chciało mi się już przenosić go do siebie). Po kliknięciu przycisku "wyslij" idzie to do pliku php w którym jest taki kod:

<?php

echo '<pre>';
var_dump($_POST['section']);
echo '</pre>';

foreach ($_POST['section'] as $section) {
    echo '<div style="width: '.$section['sectionwidth'].'px; height: '.$section['sectionheight'].'px; background: #'.$section['bg'].'; color: '.$section['sectioncolor'].'">';
    foreach ($section['input'] as $input) {
        echo '<p style="width: '.$input['inputwidth'].'px;">'.$input['inputtext'].'</p>';
    }
    echo '</div>';
}

A więc nie ma tu nic statycznego, w form.html jest tylko kod, który generuje Twój JS.

komentarz 3 sierpnia 2017 przez sc4rface Dyskutant (7,710 p.)
Ale przecież załączyłem w pierwszym swoim poście, jaką tablicę otrzymuję po przesłaniu formularza do PHP. Prawie taką samą, co nie znaczy taką samą - więc nie ma to prawa działać, niestety.
komentarz 3 sierpnia 2017 przez Arkadiusz Waluk Ekspert (287,950 p.)

To wybacz, ale niestety nadal nie rozumiem.

Wrzuciłem teraz tutaj nawet Twojego JSa: http://others.waluk.pl/forum/form.html (jedyne co zmieniłem to usunąłem apostrofy, czyli zmiana np. z [\'bg\'] na [bg], tak jak mówiłem wyżej i dodałem formularz z guzikiem aby dało się wysłać). I działa, po dodaniu i kliknięciu wyślij PHP generuje odpowiednią tablicę oraz kod HTML. Możesz dodać ile sekcji chcesz i ile inputów chcesz.

Jeśli to nie to, to więcej nie jestem prawdopodobnie w stanie pomóc, wybacz.

komentarz 3 sierpnia 2017 przez sc4rface Dyskutant (7,710 p.)
Racja, działa - wybacz. Wciąż mówiliśmy o tym samym, aczkolwiek moim błędem było to, że nie usunąłem \' z kodu :D
komentarz 3 sierpnia 2017 przez Arkadiusz Waluk Ekspert (287,950 p.)
Heh, mówiłem o tym już dużo wyżej. Ale ok, miło że wreszcie działa.

Podobne pytania

0 głosów
1 odpowiedź 313 wizyt
pytanie zadane 22 października 2015 w PHP przez ukasz112 Początkujący (390 p.)
0 głosów
1 odpowiedź 1,147 wizyt
pytanie zadane 30 lipca 2019 w JavaScript przez niezalogowany
+1 głos
0 odpowiedzi 310 wizyt
pytanie zadane 28 sierpnia 2018 w JavaScript przez jaco Początkujący (290 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...