![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 16.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
pętlą generuje poniższy kod:
załóżmy, że pętla wykonała się 5x a użytkownik zaznaczył checkboxy: pierwszy, drugi i czwarty więc otrzymuje tablice: tab[0] == on tab[1] == on tab[2] == on teraz sprawdzając przykładowo czwarty element, który użytkownik zaznaczył ptaszkiem otrzymam null - bo element trzeci był pusty, więc w jego miejsce wszedł element 4. Jak rozwiązać ten problem, aby każdy element tablicy był równoległy do zaznaczonego ptaszka? Proszę o pomoc |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 16.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
tak bym mógł wykonać kiedy mam pojedynczy checkbox lub ich ilość jest mi znana, ale co jeżeli generuje je pętlą, tak jak napisałem w pierwszym poście?
Ten post edytował pkosciej 6.10.2012, 16:39:57 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 590 Pomógł: 107 Dołączył: 25.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
jeśli mamy pętlę for(), to indeksy znamy, prawda? A jeśli mamy while/foreach, to przed pętlą ustawiamy sobie $index=0, a w pętli zwiększamy $index o 1. I po zakończeniu pętli mamy ilość dodanych checkboxów.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
tak bym mógł wykonać kiedy mam pojedynczy checkbox lub ich ilość jest mi znana, ale co jeżeli generuje je pętlą, tak jak napisałem w pierwszym poście? Tak samo pętlą odczytujesz:
A value ustalane podczas generowania kodu HTML może być np. id czy coś w tym stylu, coś powiązanego z treścią formularza, żebyś wiedział o co chodzi lub też kolejna liczba naturalna (odpowiadająca n-temu obrotowi pętli, w której generujesz kod HTML). Ten post edytował b4rt3kk 6.10.2012, 17:55:30 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 374 Pomógł: 79 Dołączył: 6.04.2010 Skąd: Ostrów Wielkopolski Ostrzeżenie: (0%) ![]() ![]() |
Problem w tym, że każdy input, mimo że generujesz go pętla, ma taką samą nazwę tab[]. Po submitowaniu, klucze tablicy tab ustawiają się same, startując od 0. Jeśli zaznaczone będzie tylko jeden checkbox, nieważne który, to w wyniku dostaniesz: Kod $_POST = array( 'tab' = array( [0] = 'on' ) ) Jeśli zaznaczone będą dwa checkboxy, nieważne które, to w wyniku dostaniesz: Kod $_POST = array( 'tab' = array( [0] = 'on', [1] = 'on' ) ) W trakcie generowania inputów pętlą, musisz nadać różne nazwy inputom, np:
W ten sposób każdy input będzie miał unikatową nazwę (tab[1], tab[2], ...), i w zależności o tego, który będzie zaznaczony przez użytkownika, dostaniesz tablicę tab z odpowiednimi indeksami, np: Kod $_POST = array( 'tab' = array( [1] = 'on', [2] = 'on', [4] = 'on' ) ) Zauważ, że w zmiennej post nigdy nie pojawią się checkboxy niezaznaczone. Są tylko te zaznaczone. Mają wartość "on". Jeśli chcesz, żeby miały inną wartość, to dodaj tą informację do inputów;
a w wyniku dostaniesz (przy zaznaczonych checkboxach pierwszym, drugim i czwartym): Kod $_POST = array(
'tab' = array( [1] = 'opcja1', [2] = 'opcja2', [4] = 'opcja4' ) ) |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 16.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuje za pomoc, zwłaszcza dla
@bostaf - świetnie zrozumiałeś mój błąd a Twój wykład na prawdę pomógł mi rozwiązać problem, dziękuje. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 09:32 |