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

Laravel - jak pobrać dane z wielu pól checkbox

Object Storage Arubacloud
0 głosów
130 wizyt
pytanie zadane 10 kwietnia 2022 w PHP przez Piotr Popławski Użytkownik (610 p.)

Jak mogę pobrać wartość z pól checkbox. Dla różnych formularzy jest różna ilość takich pól. Nazwy rozpoczynają się od 0, czyli mają nazwę customCheck0

nieśmiało ;) napisałem coś takiego, jednak pokazuje się błąd: Undefined variable: $request->customCheck0

Zmienna z formularza jest przekazywana.

Dziękuję za podpowiedź, w Laravelu działam od miesiąca i być moze pytanie jest lamerskie.

for ($q=0;$q<$request->il_opcji;$q++)
    {
        $zm = '$request->customCheck'.$q;
        dump($$zm);

        if (isset($$zm)) {
            array_push($opcje, $$zm);
        }

    }

 

komentarz 10 kwietnia 2022 przez CubeStorm Pasjonat (15,020 p.)
Pokaż kod całej akcji kontrolera, nie samą zawartość.

1 odpowiedź

+3 głosów
odpowiedź 10 kwietnia 2022 przez Arkadiusz Waluk Ekspert (287,950 p.)

Coś pomieszałeś, taka składnia nie ma jak zadziałać, bo w $zm jest tylko string.

Spróbuj zapisu z klamrami:

$request->{'customCheck' . $i};

Ewentualnie możesz też przygotować to wcześniej w zmiennej:

$name = 'customCheck' . $i;
$request->$name;

Możesz też użyć metody np. input() lub get(), bo zakładam, że $request to Laravelowy obiekt, i tu już się da normalnie połączyć stringi w argumencie np.:

$request->input('customCheck' . $i);

Albo jeśli i tak finalnie chcesz z tego zrobić tablicę opcji (tak wnioskuję po array_push()) to możesz od razu odczytać wszystkie elementy z requesta jako tablicę np. poprzez $request->all() - tylko uwaga, bo to bierze wszystko co zostanie przesłane, więc mogą tam być też niechciane rzeczy jeśli ktoś coś dołoży. Alternatywnie można użyć np. $request->validated(), aby dostać tylko tablicę elementów, które były sprawdzane przez walidator (aby uniemożliwić wrzucenie tam czegoś, czego nie powinno być), o ile takowy tam masz.

komentarz 10 kwietnia 2022 przez CubeStorm Pasjonat (15,020 p.)

W controllerze możesz dodać linijkę

dd($request->input());

która zatrzyma działanie kodu i pokaże Ci wszystkie przesyłane pola z formularza, wtedy upewnisz się czy aby na pewno przesyłasz pole customCheck0.

komentarz 10 kwietnia 2022 przez Piotr Popławski Użytkownik (610 p.)

@Arkadiusz Waluk, Rewelacja, dziękuję bardzo. Dodałem znaki {} i poszło.

Dziękuję

 

Podobne pytania

0 głosów
1 odpowiedź 133 wizyt
pytanie zadane 14 stycznia 2021 w PHP przez mikey Użytkownik (820 p.)
0 głosów
0 odpowiedzi 103 wizyt
pytanie zadane 24 czerwca 2018 w PHP przez Proth Początkujący (310 p.)
0 głosów
1 odpowiedź 405 wizyt
pytanie zadane 2 stycznia 2020 w PHP przez rafana Użytkownik (950 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 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!

...