[PHP]/[JAVASCRIPT] check all checkboxes probleem

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

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik ben bezig met een filebrowser in php, naast elke file heb ik een checkbox die met deze code wordt gemaak (zit in for lus ;) ):

code:
1
<input type=checkbox name=checksdir[] value=\"".$directories[$counter]."\"/>

de naam "checksfile[]" zorgt ervoor dat ik direct alle geselecteerde checks in een array krijg in php. In javascript is dit blijkbaar niet zo.

mijn form name: files.

code:
1
 document.files.elements[0].checked = true;

deze vinkt al de eerste checkbox aan maar daar blijf het bij, volgende code:

code:
1
 document.files.elements[1].checked = true;

werkt niet.

Zijn er nog manieren om alle checkboxen te selecteren die met zo'n array zijn opgemaakt?

alvast bedankt! ;)

Acties:
  • 0 Henk 'm!

  • Raynman
  • Registratie: Augustus 2004
  • Laatst online: 21:12
Ik zou in elk geval aanhalingstekens om waardes zetten in je HTML (weet niet of dat het oplost). Dan probeer je een for-lus:

JavaScript:
1
2
for(var i in document.forms['files'].elements)
   document.forms['files'].elements[i].checked = true;


Edit: als de []-notatie in Javascript ook een array oplevert (dat weet ik niet meer, gewoon ff proberen) werkt bovenstaande waarschijnlijk niet en moet je maar eens naar het bericht hieronder kijken.

[ Voor 29% gewijzigd door Raynman op 18-11-2007 12:58 ]


Acties:
  • 0 Henk 'm!

Verwijderd

en als je
document.files.checksdir[i].checked = true;
gebruikt?

Acties:
  • 0 Henk 'm!

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

JavaScript:
1
2
3
4
5
6
7
for(var i in document.forms['files'].elements)
{
   if(document.forms['files'].elements[i].type == 'checkbox' && document.forms['files'].elements[i].name == 'checksdir[]')
{
   document.forms['files'].elements[i].checked = true;
}
}

Je moet natuurlijk niet checked aan proberen te roepen op een input type=file ofzo (dat is wat ik vermoed wat er gebeurt )

[ Voor 8% gewijzigd door SchizoDuckie op 18-11-2007 19:13 ]

Stop uploading passwords to Github!


Acties:
  • 0 Henk 'm!

  • XWB
  • Registratie: Januari 2002
  • Niet online

XWB

Devver
En maak er eens checked="checked" van.

JavaScript:
1
document.forms['files'].elements[i].checked = 'checked';

[ Voor 55% gewijzigd door XWB op 18-11-2007 19:15 ]

March of the Eagles


Acties:
  • 0 Henk 'm!

  • Raynman
  • Registratie: Augustus 2004
  • Laatst online: 21:12
Hacku schreef op zondag 18 november 2007 @ 19:14:
En maak er eens checked="checked" van.

JavaScript:
1
document.forms['files'].elements[i].checked = 'checked';
Ik hou me eigenlijk al een paar jaar niet meer met websites bezig, maar verwar je JavaScript dan niet met XHTML?

Acties:
  • 0 Henk 'm!

  • XWB
  • Registratie: Januari 2002
  • Niet online

XWB

Devver
Nee, je kent enkel een waarde toe aan het attribuut van een html element. Met de web developer toolbar in Firefox kan je de broncode van een pagina bekijken na het aanpassen met javascript, en dan zou je dit krijgen:

HTML:
1
<input type="checkbox" checked="true" />


Wat fout is.

March of the Eagles


Acties:
  • 0 Henk 'm!

  • Rickets
  • Registratie: Augustus 2001
  • Niet online

Rickets

Finger and a shift

Hacku schreef op zondag 18 november 2007 @ 19:26:
Nee, je kent enkel een waarde toe aan het attribuut van een html element. Met de web developer toolbar in Firefox kan je de broncode van een pagina bekijken na het aanpassen met javascript, en dan zou je dit krijgen:

HTML:
1
<input type="checkbox" checked="true" />


Wat fout is.
Toch heeft Raynman gelijk. Het aan- en uitzetten van een checkbox gaat in javascript met een boolean, niet met ‘checked’.

If some cunt can fuck something up, that cunt will pick the worst possible time to fucking fuck it up, because that cunt’s a cunt.


Acties:
  • 0 Henk 'm!

  • Megamind
  • Registratie: Augustus 2002
  • Laatst online: 10-09 22:45
Geef ze gewoon dezelfde classname, en loop er met behulp van findelementbyclass doorheen. Of met findelementbyID

Acties:
  • 0 Henk 'm!

Verwijderd

Hacku schreef op zondag 18 november 2007 @ 19:26:
Nee, je kent enkel een waarde toe aan het attribuut van een html element. Met de web developer toolbar in Firefox kan je de broncode van een pagina bekijken na het aanpassen met javascript, en dan zou je dit krijgen:

HTML:
1
<input type="checkbox" checked="true" />


Wat fout is.
Toch heb je het mis, want de .checked property is toch echt een boolean. Een DOM element is een representatie van het in HTML beschreven element. Verwar een document met daarin HTML code niet met een DOM level 2 HTMLDocument. Met name een HTMLInputElement.

[ Voor 37% gewijzigd door Verwijderd op 18-11-2007 19:35 ]


Acties:
  • 0 Henk 'm!

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

Megamind schreef op zondag 18 november 2007 @ 19:31:
Geef ze gewoon dezelfde classname, en loop er met behulp van findelementbyclass doorheen. Of met findelementbyID
Beetje een loze opmerking in dit topic omho als iemand met document.forms werkt en er totaal geen melding van maakt dat ie wat voor JS library dan ook gebruikt :P

Overigens, als je dan toch met getelementsbyselector gaat werken, neem dan een goeie zodat je gelijk $$('input[type=file]').each() kan nemen ;)

Stop uploading passwords to Github!


Acties:
  • 0 Henk 'm!

  • Megamind
  • Registratie: Augustus 2002
  • Laatst online: 10-09 22:45
SchizoDuckie schreef op zondag 18 november 2007 @ 19:56:
[...]

Beetje een loze opmerking in dit topic omho als iemand met document.forms werkt en er totaal geen melding van maakt dat ie wat voor JS library dan ook gebruikt :P
En dat werkt niet, dus zal hij moeten kijken naar een andere oplossing...

Acties:
  • 0 Henk 'm!

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

Megamind schreef op zondag 18 november 2007 @ 20:17:
[...]

En dat werkt niet, dus zal hij moeten kijken naar een andere oplossing...
dus de oplossing is een extra javascript library te gaan gebruiken en je elementen via een gigantische omweg te vinden ipv de bug fixen? 8)7

Stop uploading passwords to Github!


Acties:
  • 0 Henk 'm!

  • XWB
  • Registratie: Januari 2002
  • Niet online

XWB

Devver
Verwijderd schreef op zondag 18 november 2007 @ 19:35:
[...]

Toch heb je het mis, want de .checked property is toch echt een boolean. Een DOM element is een representatie van het in HTML beschreven element. Verwar een document met daarin HTML code niet met een DOM level 2 HTMLDocument. Met name een HTMLInputElement.
Hm k*t, morgen maar eens een aantal scripts updaten. Maar verder, elke browser slikt het wel.

March of the Eagles


Acties:
  • 0 Henk 'm!

Verwijderd

Hacku schreef op zondag 18 november 2007 @ 21:36:

Hm k*t, morgen maar eens een aantal scripts updaten. Maar verder, elke browser slikt het wel.
Een string resolvet naar de boolean true ;)

Acties:
  • 0 Henk 'm!

Verwijderd

[...]Toch heb je het mis, want de .checked property is toch echt een boolean.[...]
Een stukje uit een CheckAll javascript:
JavaScript:
1
document.myform.elements[i].checked=val;

myform is de naam van mijn form. De val wordt door de functie meegegeven en is 1 of 0 (dus kun je met dat script alle checkboxen aan of uit zetten)
SchizoDuckie zit ontzetten dicht bij de oplossing, want de [i] komt uit een for.. loopje.
Pagina: 1