Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [javascript] Zaznaczanie "widzialnych" checkboxów
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Immortal
Drążę temat checkboxów (http://forum.php.pl/viewtopic.php?t=7633) w nowym wątku, po kwestia jest nieco odmienna.

Tym razem mam funkcję, która zmienia display elementu o określonym id na none/block:

Kod
function ChangeVisibility(id)



{

    if(document.all) {

       if( document.all[id].style.display == 'none')

  {

    document.all[id].style.display = 'block';

     }

    else {

    document.all[id].style.display = 'none';

  }

  }

  else {

    firstlayer = document.getElementById(id);



    if( firstlayer.style.display == 'none')

  {

  firstlayer.style.display = 'block';

  }

  else {

     firstlayer.style.display = 'none';

  }

  }

}


I mam też funkcję (dzięki uprzejmości FiDO) zaznaczającą checkboxy, które obecnie znajdują się w wielu tabelach:

Kod
function checkAll(form, fields)

{



elts = document.forms[form].elements[fields];

  

if(document.forms[form].checkall.value == 'Zaznacz wszystkie')

{

  document.forms[form].checkall.value = 'Odznacz wszystkie';

  val = true;      

}      

else if(document.forms[form].checkall.value == 'Odznacz wszystkie')

{

  document.forms[form].checkall.value = 'Zaznacz wszystkie';

  val = false;

}  

  

  for (i = 0; i < elts.length; i++)

    elts[i].checked = val;      

}



Nie chcę robić osobnego przycisku "Zaznacz/Odznacz wszystkie", dla każdej tabeli, wolałbym przerobić funkcję tak, by zaznaczała/odznaczała wszystkie checkboxy w "widzialnych" tabelach. Pytanie: jak? smile.gif

Być może rozwiązanie jest banalne, ale ja mam dość poważne problemy z "myśleniem w javascript"... rolleyes.gif
FiDO
Pokaz kawalek kodu html z tymi tabelkami zawierajacymi checkboxy.
Immortal
Hmm, kod jest dość skomplikowany (czyt. śmietnik, w którym tylko ja, i to jedynie od czasu do czasu, się orientuję winksmiley.jpg).
Spróbuję podać to, co najważniejsze.

Otóż najpierw wczytywana jest z pliku lista nazw, która zostaje następnie posortowana alfabetycznie. Uzyskujemy np. coś takiego:

Ananasy 1 szt.
Ananasy 5 szt.
Ananasy 10 szt.
Banany 1 szt.
Banany 5 szt.
Banany 10 szt.

itp.

Funkcja wyświetla nazwy, dzieląc je na kategorie wg pierwszego wyrazu. Otrzymujemy więc dwie podkategorie (w przykładzie Ananasy i Banany), których nazwa wyświetlana jest w ten sposób:

Kod
<a  href="#" onClick="ChangeVisibility('<?=$nazwa_kategorii;?>');"><?=$nazwa_kategorii;?> </a>


Pod nią zaś:

Kod
<table id="<?=$nazwa_kategorii;?>" cellspacing="1" cellpadding="3" style="display: block;">


W tej tabeli wyświetlane są wszystkie elementy kategorii, wraz z checkboxami:


Kod
<input type="checkbox" name="do_compare[]" value="<?=$i;?>">



Jeżeli wczytywany element ma, jako pierwszy, inny wyraz, niż obecna nazwa kategorii, zostaje wstawione zamknięcie tabeli, link rozwijający kolejną kategorię i początek tabeli na nową kategorię.

To chyba tyle.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.