Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Po wybraniu select zaznacz checkboxa
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Nievinny
Mam parę opcji listy rozwijalnej:
Kod
- banned
- guest
- user
- mod
- itd

(przedstawiają zezwolenia)

i chackboxy (parę kolumn tego typu)
Kod
1 - view
2 - edit
3 - add
- itd

(przedstawiają prawa)

Potrzebuję skryptu, który po wybraniu poziomu z select zaznaczy odpowiednie chackboxy. Np: Wybieram Guest i automatycznie zaznacza view i edit.
Nie znam się na JS i proszę o pomoc (myslę, że powinien zaznaczać po nazwach chacków, ale co jesli mam 3 kolumny: news, articles i download i nazwy sa takie news.view?
revyag
O coś takiego chodzi ? smile.gif
Kod
<script type="text/javascript">
function chk(opt){
    switch(opt.value){
        case 'banned':{
            document.getElementById("norm.view").checked=false;
            document.getElementById("norm.edit").checked=false;
            
        }break;
        case 'guest':{
            document.getElementById("norm.view").checked=true;
            document.getElementById("norm.edit").checked=true;
        }break;
        case 'user':{
        }break;
        case 'mod':{
        }break;
        default:{
            document.getElementById("norm.view").checked=false;
            document.getElementById("norm.edit").checked=false;
        }break;
    }
}
</script>

  1. <select id="s1" name="s1" onclick="chk(this)">
  2. <option value="banned">banned</option>
  3. <option value="guest">guest</option>
  4. <option value="user">user</option>
  5. <option value="mod">mod</option>
  6. </select><br>
  7. view: <input id="norm.view" type="checkbox" /> edit: <input id="norm.edit" type="checkbox" />
Nievinny
Mniej więcej tylko mam takie "tabele" chackboxów...
norm.view, norm1.view, norm2.view itd I jak zrobić aby obsługiwało wszystkie? Trochę później to napisałeś bo ARJ dał mi to na gg, ale temat nadal aktualny winksmiley.jpg
revyag
funkcja tworzy tablicę z określonymi checkboxami
Kod
function makearr(str,str1){

    var elarr = document.getElementsByTagName("input");
    var chkarr = new Array();
    var j = 0;
    
    for(i=0;i<elarr.length;i++){
        if(elarr[i].type=="checkbox" && elarr[i].id.match(str)==str && elarr[i].id.match(str1)==str1){
            chkarr[j++] = elarr[i];
        }
    }
    
return chkarr;
}

Zastosowanie:
Kod
function chk(opt){
    
    var chkarr = makearr("norm","view");        
    
    switch(opt.value){
        case 'banned':{
            for(i=0;i<chkarr.length;i++){
                document.getElementById(chkarr[i].id).checked=false;      
            }            
            
        }break;
        case 'guest':{
           for(i=0;i<chkarr.length;i++){
                document.getElementById(chkarr[i].id).checked=true;    
            }
        }break;
        default:{
        }break;
    }
}

  1. <select id="s1" name="s1" onclick="chk(this)">
  2. <option value="banned">banned</option>
  3. <option value="guest">guest</option>
  4. </select><br>
  5. view1: <input id="norm1.view" type="checkbox" /><br />
  6. view2: <input id="norm2.view" type="checkbox" /><br />
  7. view3: <input id="norm3.view" type="checkbox" /><br />

Żeby obsłużyć to wszystko jedną funkcją pewnie będziesz musiał stworzyć parę takich tablic checkboxów i potem poustawiać odpowiednie warunki w case'ach.
Nievinny
Dzięki, wieczorem sprawdzę bo teraz nie mam czasu, ale dzięki...
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.