login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Select All functie

Offline edwin87 - 19/04/2007 08:42 (laatste wijziging 19/04/2007 08:43)
Avatar van edwin87Nieuw lid Goedenmorgen deze morgen,
Ik zit met de volgende 2 problemen.
Ik heb een form gemaakt en wanneer ik op selecteer alles klik dan selecteert hij alle checkboxes van dat form wat goed is. Nu heb ik verschillende forms in de pagina, in totaal 3.

Als ik bijvoorbeeld bij het 1ste form alles selecteer kan ik ook bij het andere form nog alles selecteren wat niet de bedoeling is. Het is de bedoeling dat ik maar 1 form per keer kan selecteren. Hoe doe ik dat?

Mijn volgende vraag is:
Hoe kan ik 1 functie maken voor de select optie. Ik heb nu dan drie functies; Select1All, Select2All, Select3All. Is het ook mogelijk om die functie in te korten?

  1. <script language="JavaScript" type="text/javascript">
  2. function SelectAll(){
  3. count = document.form.elements.length;
  4.  
  5. for (i=0; i < count; i++) {
  6. if(document.form.elements[i].checked == 1) {
  7. document.form.elements[i].checked = 0;
  8.  
  9. } else {
  10. document.form.elements[i].checked = 1;
  11. }
  12. }
  13. }
  14.  
  15. </script>


De Selecteer Alles link is:
<a href="#SelectAll" OnClick="SelectAll()">

Alvast Bedankt

10 antwoorden

Gesponsorde links
Offline Thomas - 19/04/2007 08:53
Avatar van Thomas Moderator Geef de formulieren een naam, en refereer hier naar in je SelectAll-functie.

Beter is wellicht een variant met getElementById.
Offline edwin87 - 19/04/2007 08:56
Avatar van edwin87 Nieuw lid Ik heb het formulier ook een naam gegeven. BIjvoorbeeld Form1, Form2, Form3

Maar zou je dit misschien nader kunnen uitleggen. Qua Javascript zit ik nog onder het nulpunt.
Offline Thomas - 19/04/2007 10:56
Avatar van Thomas Moderator De oude manier is document.forms['<formuliernaam>'].elements['<element_naam>'].

Misschien ook een idee om alleen checkboxen (met een bepaalde naam) te selecteren? Niet alle formulier-elementen hebben een eigenschap "selected".
Offline edwin87 - 19/04/2007 11:02
Avatar van edwin87 Nieuw lid
  1. <script language="JavaScript" type="text/javascript">
  2. function selectAll(formid){
  3. form = document.getElementById(formid);
  4. count = form.elements.length;
  5.  
  6. for (i=0; i < count; i++) {
  7. if(form.elements[i].checked == 1) {
  8. form.elements[i].checked = 0;
  9.  
  10. } else {
  11. form.elements[i].checked = 1;
  12. }
  13. }
  14. }
  15.  
  16. </script>

Ik heb nu dit.
Ik geef het formulier een id mee. Ik roep het aan in de link als
  1. <a href="javascript:selectAll('form1');


Het gekke is, alle formulieren doen het op 1 na. Ik heb gekeken of ik een dom typfoutje had gemaakt maar dit was niet het geval. Wat kan hier aan de hand zijn?

Verder ben ik benieuwd of het mogelijk is wanneer ik 1 form heb geselecteerd dat ik de ander niet kan selecteren?
Offline Thomas - 19/04/2007 11:43
Avatar van Thomas Moderator
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <title></title>
  5. <script type="text/javascript">
  6. <!--
  7. function checkall(form, element, check, start, end)
  8. {
  9. // flip check? kijk of eerste element checked is en draai deze om
  10. check = !(document.getElementById(form+'['+element+']['+start+']').checked == check);
  11.  
  12. for (var i=start; i <= end; i++)
  13. {
  14. document.getElementById(form+'['+element+']['+i+']').checked = check;
  15. }
  16. }
  17. //-->
  18. </script>
  19. </head>
  20.  
  21. <body>
  22. <form name="formName" id="formName" action="" method="post">
  23. <input type="checkbox" name="formName[test][1]" id="formName[test][1]" value="1" />1<br />
  24. <input type="checkbox" name="formName[test][2]" id="formName[test][2]" value="2" />2<br />
  25. <input type="checkbox" name="formName[test][3]" id="formName[test][3]" value="4" />4<br />
  26.  
  27. <button type="button" onclick="checkall('formName', 'test', true, 1, 3)">check / clear all</button>
  28. </form>
  29.  
  30. <form name="formName2" id="formName2" action="" method="post">
  31. <input type="checkbox" name="formName2[test][1]" id="formName2[test][1]" value="1" />1<br />
  32. <input type="checkbox" name="formName2[test][2]" id="formName2[test][2]" value="2" />2<br />
  33. <input type="checkbox" name="formName2[test][3]" id="formName2[test][3]" value="4" />4<br />
  34. <input type="checkbox" name="formName2[test][4]" id="formName2[test][4]" value="8" />8<br />
  35. <input type="checkbox" name="formName2[test][5]" id="formName2[test][5]" value="16" />16<br />
  36.  
  37. <button type="button" onclick="checkall('formName2', 'test', true, 1, 5)">check / clear all</button>
  38. </form>
  39. </body>
  40. </html>
Offline edwin87 - 19/04/2007 11:51 (laatste wijziging 19/04/2007 12:03)
Avatar van edwin87 Nieuw lid De start en end functie, hoe kan ik die definieren naar php zegmaar.
Ik haal namelijk alle nieuws items uit de database. Hoe kan ik dit dynamischer krijgen?

Verder was ik benieuwd of het mogelijk is met javascript wanneer je 1 form alles hebt geselecteerd dat je het ander formulier niet kunt selecteren.
Ik heb namelijk een overicht met nieuws categorien en nieuws items. Deze kan ik doormiddel van checkboxen verwijderen. Maar wanneer ik categorien selecteer kan ik de nieuws item ook direct selecteren wat niet de bedoeling is.
Offline Thomas - 19/04/2007 12:19
Avatar van Thomas Moderator Als je alle items uit de database haalt, dan bouw je toch ook een rij checkboxen?

start laat je op 1 staan (begin checkboxen te nummeren bij 1) en end is mysql_num_rows(query_resultaat)?
Offline Ultimatum - 19/04/2007 12:19 (laatste wijziging 19/04/2007 12:20)
Avatar van Ultimatum PHP expert start is dan altijd 1. En dan moet je met mysql_num_rows() gaan kijken hoeveel rows er zijn die opgehaald worden. En dat is dan je end

edit: *stik* 
Offline edwin87 - 19/04/2007 12:24 (laatste wijziging 19/04/2007 22:48)
Avatar van edwin87 Nieuw lid Oke harstikke bedankt dit werkt!
Citaat:
Verder was ik benieuwd of het mogelijk is met javascript wanneer je 1 form alles hebt geselecteerd dat je het ander formulier niet kunt selecteren.
Ik heb namelijk een overicht met nieuws categorien en nieuws items. Deze kan ik doormiddel van checkboxen verwijderen. Maar wanneer ik categorien selecteer kan ik de nieuws item ook direct selecteren wat niet de bedoeling is.

Zouden jullie me hier nog mee kunnen helpen??
Offline Grayen - 20/04/2007 16:08
Avatar van Grayen PHP ver gevorderde Was nog een heel gedoe, dat select all was simpel, maar om alles te disablen als bij die categorie hoort enzo was nog een heel gedoe. Je bedoelt zeker dit:

http://www.plaatscode.be/5138/
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.258s