Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> checkbox - zaznaczenie wszystkich
qlash
post 19.09.2006, 07:14:19
Post #1





Grupa: Zarejestrowani
Postów: 73
Pomógł: 0
Dołączył: 29.08.2006

Ostrzeżenie: (0%)
-----


witam

mam taki problem, otoz na stronie bede mial dynamicznie tworzona liste a przy kazdej jakis checkbox. lista tworzona jest przez php nie przez js i teraz mam problem, chce stworzyc przycisk "zaznacz/odznacz wszystkie"
i nie wiem jak sie do niego zabrac: jakie id nadac checbox'om i jak sprawdzic czy takie id istnieje?
chcialbym aby to w miare mozliwosci bylo tworzone dynamicznie, a nie np. php wysyla do zmiennej js na pocz ilosc takich checkbox'ow

pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
DjKermit
post 19.09.2006, 08:33:20
Post #2





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 18.06.2005

Ostrzeżenie: (0%)
-----


Kod
function selectCheckBoxes(val) {
    if (document.checkBoxesChecked)
        document.checkBoxesChecked = false;
    else
        document.checkBoxesChecked = true;
    if (val == undefined)
        var cb = document.getElementsByTagName('input');
    else
        var cb = document.getElementsByName($val);
    for (var i = 0; i < $cb.length; i++) {
        if (cb[i].type == 'checkbox') cb[i].checked = document.checkBoxesChecked;
    }
}

wywołanie
selectCheckBoxes();
zaznacza wszystkie checkbox'y w dokumencie

selectCheckBoxes('nazwa');
zaznacza wszystkie chceckbox'y o zdefiniowanej nazwie (name="nazwa")

Ten post edytował DjKermit 19.09.2006, 08:34:13


--------------------
emiker
Go to the top of the page
+Quote Post
misterdexter
post 19.09.2006, 09:06:35
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 15.06.2005

Ostrzeżenie: (0%)
-----


Trochę siłowo to robisz

Zamiast:
Kod
if (document.checkBoxesChecked)
        document.checkBoxesChecked = false;
    else
        document.checkBoxesChecked = true;


Możesz przecież dać:
Kod
document.checkBoxesChecked = !document.checkBoxesChecked



Qlash spróbuj tego:
Kod
function selectCheckboxes(what,pref,stan){
  for(i=0;i<what.elements.length;i++){
    if(what.elements[i].type == "checkbox" && what.elements[i].name.substring(0,pref.length) == pref){
      what.elements[i].checked=stan;
    }
  }
}


Funkcja ma trzy parametry
- formularz, z którego checkbox'y mają być zaznaczone
- prefix nazwy checkbox'a (mogą się różnić np nr'ami w sufix'ie)
- stan checkbox'ów po zmianie

Przykładowy uproszczony kod:
  1. <input type="checkbox" name="all" onclick="selectCheckboxes(this.form,'ch[',this.checked)" /><br/>
  2. <input type="checkbox" name="ch[0]" /><br/>
  3. <input type="checkbox" name="ch[1]" /><br/>
  4. <input type="checkbox" name="ch[2]" />
  5. </form>
Go to the top of the page
+Quote Post
DjKermit
post 19.09.2006, 10:01:23
Post #4





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 18.06.2005

Ostrzeżenie: (0%)
-----


Cytat
Możesz przecież dać:
Kod
document.checkBoxesChecked = !document.checkBoxesChecked

Fakt, dobra uwaga, dzięki.


--------------------
emiker
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 09:00