![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 7.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Ostatnio trafiłem na dość ciekawy problem:
Mam w formularzu dużą ilość pól typu checkbox drukowanych z PHP. Zawsze, przekazywałem je spowrotem w taki sposób: <input type="checkbox" <b>name="jezyki[]"</b> value="ang" /> <input type="checkbox" name="jezyki[]" value="ger" /> Dzięki temu wszystko ładnie ląduje w tabeli w PHP. Chciałem do tego zastosować prosty skrypt który miałby zaznaczać lub odznaczać wszystkie checkbox'y naraz. Np. coś takiego: Kod <html> <head> <script type="text/javascript"> function zmien(formularz){ if(formularz.check_all.checked) { zaznacz(formularz)} else { odznacz(formularz)}} function zaznacz(formularz){ for (i = 0; i < formularz.jezyki.length; i++){ formularz.jezyki[i].checked=true}} function odznacz(formularz){ for (i = 0; i < formularz.jezyki.length; i++){ formularz.jezyki[i].checked=false }} </script> </head> <body> <form name="form1"> <input type="checkbox" name="check_all" onclick="zmien(this.form)" />(zaznacz wszystkie) <input type="checkbox" name="jezyki" value="ang" />Angieski <input type="checkbox" name="jezyki" value="ger" />Niemiecki <input type="checkbox" name="jezyki" value="fr" />Francuski <input type="checkbox" name="jezyki" value="it" />Włoski </form> </body> </html> I tu pojawia się mój problem. Kiedy zrobię tak: <input type="checkbox" name="jezyki" .../> to JavaScript widzi tablicę jezyki, a PHP próbuje wszystkie języki wpisać kolejno do jednej zmiennej. A kiedy zrobię tak: <input type="checkbox" name="jezyki[]" .../> to PHP widzi tablicę jezyki, a JavaScript udaje że nic nie widzi... Można jakoś napisać funkcję która "zaznaczy wszystkie" checkbox'y tak żeby zachować wszystkie Input'y jako tablicę w PHP? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Kod <script type="text/javascript"> function zmien(formularz){ if(formularz.check_all.checked) { zaznacz(formularz)} else { odznacz(formularz)}} function zaznacz(formularz){ for (i = 0; i < formularz.elements.length; i++){ formularz.elements[i].checked=true}} function odznacz(formularz){ for (i = 0; i < formularz.elements.length; i++){ formularz.elements[i].checked=false }} </script> Ewentualnie dodaj sprawdzanie nazwy, jeśli nie chcesz wszystkich checkboksów z formy zaznaczyć. ;] -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 229 Pomógł: 13 Dołączył: 31.05.2007 Ostrzeżenie: (10%) ![]() ![]() |
Ja np. używam takiego skryptu do zaznaczania checkboxów
Kod function select_all()
{ for (var i=0;i<document.form2.elements.length;i++) { var e =document. form2.elements[i]; if ((e.name != 'check_all') && (e.type=='checkbox')) { e.checked = document.form2.check_all.checked; } } } |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 15:30 |