[JS] Meerdere Checkboxen selecteren/deselecteren

Pagina: 1
Acties:
  • 179 views sinds 30-01-2008
  • Reageer

  • vriesdude
  • Registratie: Februari 2002
  • Laatst online: 06:50
Ik ben bezig met een webpagina waarop ongeveer 400 checkboxen voorkomen.
Het kan voorkomen dat de gebruiker een serie van 4,8 of 40 checkboxen tegelijk wil selecteren/deselecteren.

Nou heb ik op een aantal site's (o.a. GOT, google en hotscripts) gezocht, maar geen van de oplossing voldoet aan mijn wensen (deze zijn nogal uitgebreidt)..

Alle checkboxen hebben dezelfde name, het php script wat er achterdraait haalt die als array op en aan de hand van de value weet ie of de de checkbox aangevinkt was (aangezien niet aangevinkte checkboxen niet in de array verschijnen).

De checkbox name verander ik het liefst niet (iig niet in aparte name's voor elke geselecteerde groups).

Waar ik naar op zoek ben is een javascript die kijkt naar of de value (die is voor elke checkbox uniek) of het ID (die gebruik op dit moment nog niet, dus daar kan ik makkelijk een toevoeging in het script voor maken).

Eventueel kan ik php ook een lijst generen met welke values bij welk groepje horen wat per keer wel/niet geselecteerd mag worden. Zodat er dus achter de checkbox die de andere checkboxen kan bedienen een lijstje zit met welke values die moet omzetten naar checked of unchecked

Ik hoop dat iemand een oplossing heeft voor dit wat uitgebreide probleem.

/dev/null


  • vriesdude
  • Registratie: Februari 2002
  • Laatst online: 06:50
Die maakt gebruik van verschillende name's voor elke rij met checkboxen...

/dev/null


  • André
  • Registratie: Maart 2002
  • Laatst online: 18-05 16:30

André

Analytics dude

code:
1
2
3
4
5
6
7
8
9
10
11
12
obj = document.getElementsByTagname("input")

for (var i = 0; i < obj.length; i++
{
  if (obj[i].type == "checkbox")
  {
    if (obj[i].value == "wat jij maar wil")
    {    
      obj[i].checked = true;
    }
  }
}

Zoiets?

[ Voor 20% gewijzigd door André op 29-11-2004 13:05 ]


Verwijderd

Misschien is het ook wel een idee om daar een classname voor te gebruiken:
• Dan kun je in je loop checken op classname,
• heb je geen unieke id's nodig die je weer ergens in een groep moet stoppen.
• css-technisch kun je er misschien ook wat handigs mee

code:
1
2
// zo uit m'n hoofd
if (obj.className.indexOf('groep1')>=-1)  obj.checked=true;

  • vriesdude
  • Registratie: Februari 2002
  • Laatst online: 06:50
Ik heb het e.e.a. getest, en met het systeem wat ik al had en het stukje andre had ik een werkend resultaat. Het nadeel is alleen dat het doorlopen van 400 checkboxen nogal een flink karwei is en langer duurt dan handmatig 8 boxjes aanklikken

Bedankt voor de hulp, maar dit gaat niet werken.

/dev/null


Verwijderd

Als je je checkboxen in een span of div kunt grouperen kun je in ipv
code:
1
obj = document.getElementsByTagname("input")

bv
code:
1
obj = mydiv.getElementsByTagname("input")

gebruiken. Dat kan heel veel schelen in performance....

  • vriesdude
  • Registratie: Februari 2002
  • Laatst online: 06:50
Verwijderd schreef op maandag 29 november 2004 @ 18:50:
Als je je checkboxen in een span of div kunt grouperen kun je in ipv
code:
1
obj = document.getElementsByTagname("input")

bv
code:
1
obj = mydiv.getElementsByTagname("input")

gebruiken. Dat kan heel veel schelen in performance....
geweldig idee !, doormiddel van divs kan ik gelijk groeperingen aangeven.

vraagje, kan ik meerdere div's maken die dezelfde name hebben(of class ??).

de opbouw van de table verloopt horizontaal terwijl de gewenste divvakken verticaal moeten gaan lopen

voorbeeldje (elk getal is een <td> </td> met daarin een checkbox)...

01 02 03 04 05
05 07 08 09 00
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25

Gewenste DIV: 01+05+11+16+21

/dev/null


Verwijderd

Als je werkt met een tabel kun je ipv div's ook de <tr>-tag een id geven en daarmee verder werken.

  • vriesdude
  • Registratie: Februari 2002
  • Laatst online: 06:50
Verwijderd schreef op dinsdag 30 november 2004 @ 19:30:
Als je werkt met een tabel kun je ipv div's ook de <tr>-tag een id geven en daarmee verder werken.
probleem is dat de tabel van links naar rechts wordt opgebouwt, en bijv alleen de checkboxen in de linker kolom allemaal omgezet moeten kunnen worden.

ik ga kijken of het wel soepel loopt als ik de td's voorzie van id's

/dev/null


Verwijderd

vriesdude schreef op dinsdag 30 november 2004 @ 21:56:
[...]


probleem is dat de tabel van links naar rechts wordt opgebouwt, en bijv alleen de checkboxen in de linker kolom allemaal omgezet moeten kunnen worden.

ik ga kijken of het wel soepel loopt als ik de td's voorzie van id's
Ga dan voor de classnames... ;)

Maar heb je per se afzonderlijke tabelcellen nodig voor elke checkbox? Anders kun je wellicht gewoon x van checkboxes onder elkaar in 1 cel/div stoppen en daar alsnog Thargol's aanpak op loslaten.
Pagina: 1