Toon posts:

[javascript] loop met php variable

Pagina: 1
Acties:

Verwijderd

Topicstarter
Dit is wat ik nu heb:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<HEAD>

<SCRIPT LANGUAGE="JavaScript">
function selectAll(){
    window.document.theform2.id0.checked=true;
    window.document.theform2.id1.checked=true;
    window.document.theform2.id2.checked=true;
    window.document.theform2.id3.checked=true;
    window.document.theform2.id4.checked=true;
    window.document.theform2.id5.checked=true;
    window.document.theform2.id6.checked=true;
    window.document.theform2.id7.checked=true;
    window.document.theform2.id8.checked=true;
    window.document.theform2.id9.checked=true;
    window.document.theform2.id10.checked=true;
}
</SCRIPT>


</HEAD>
<BODY>
<?

echo'<form name="theform">';
echo'<input type="button" value="Select all" name="checkie" id="0" onClick="selectAll()">';
echo'</form>';

echo'<form name="theform2">';

echo'<input type="checkbox" name="C0" id="id0">';
echo'<input type="checkbox" name="C1" id="id1">';
echo'<input type="checkbox" name="C2" id="id2">';
echo'<input type="checkbox" name="C3" id="id3">';
echo'<input type="checkbox" name="C4" id="id4">';
echo'<input type="checkbox" name="C5" id="id5">';
echo'<input type="checkbox" name="C6" id="id6">';
echo'<input type="checkbox" name="C7" id="id7">';
echo'<input type="checkbox" name="C8" id="id8">';
echo'<input type="checkbox" name="C9" id="id9">';
echo'<input type="checkbox" name="C10" id="id10">';
echo'</form>';

echo'</body>';

?>


Dit werkt wel, maar zoals je ziet kost het veel ruimte in het function script. De ene keer kunnen er overigens ook 100 checkboxes staan in het form, dus dan wil ik niet een function van 100 regels in mijn script, maar liever eentje met een loop :)

Ik kan ervoor zorgen dat selectAll() een variable meestuurt die het aantal checkboxes heeft geteld die op de pagina staan.

ik snap niet hoe je het in javascript maakt dus zal ik de functie geven zoals ik het in gedachte heb, maar hij doet het niet:

PHP:
1
2
3
4
5
6
7
8
9
10
11
<SCRIPT LANGUAGE="JavaScript">
function selectAll($count){

var $i=0;

while ($i < $count){
            window.document.theform2.id$i.checked=true;
            i++;
 }
}
</SCRIPT>

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 26-05 23:39

mulder

ik spuug op het trottoir

op het moment dat je de <input> schrijft moet je deze het attribute 'checked' meegeven

[ Voor 19% gewijzigd door mulder op 20-01-2004 13:50 ]

oogjes open, snaveltjes dicht


Verwijderd

Topicstarter
nee ik wil gewoon een knop hebben waarop je elk moment alles kunt selecteren

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 26-05 23:39

mulder

ik spuug op het trottoir

oogjes open, snaveltjes dicht


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Geef dan een goede aanzet :)

Je kan het op de volgende manier doen (er zijn meer mogelijk):

code:
1
document.getElementById(["id"+ i]).checked = true;


Dan moet je uiteraard nog wel een loop eromheen bouwen.

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 26-05 23:39

mulder

ik spuug op het trottoir

BtM909 schreef op 20 januari 2004 @ 13:57:
[...]

Geef dan een goede aanzet :)
Ik dacht eerst dat de TS helemaal geen js kende, zie nu dat ie alleen PHP variabelen gebruikt -> $i ipv i

oogjes open, snaveltjes dicht


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 11:43

crisp

Devver

Pixelated

JavaScript:
1
2
3
4
5
6
7
8
9
function checkEmAll(form) {
  var el = document.forms[form].elements, i = el.length;
  while (i--) {
    if (el[i].type == 'checkbox') el[i].checked = true;
  }
}

// aanroepen:
checkEmAll('theform2');

Intentionally left blank


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

crisp schreef op 20 januari 2004 @ 14:12:
JavaScript:
1
var el = document.forms[form].elements, i = el.length;
Wat doet die komma daar :?
het werkt wel overigens, maar ik snap die komma daar niet

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • py.mosjuh
  • Registratie: Oktober 2002
  • Laatst online: 24-10-2022

py.mosjuh

fikkert.net

BtM909 schreef op 20 januari 2004 @ 14:40:
[...]

Wat doet die komma daar :?
het werkt wel overigens, maar ik snap die komma daar niet
als ik het goed heb is die komma simpelweg een tweetal statements na mekaar doen op 1 regel.. zou ook een ";" kunnen zijn

Kites rise highest against the wind - not with it (Winston Churcill)


  • Rickets
  • Registratie: Augustus 2001
  • Niet online

Rickets

Finger and a shift

BtM909 schreef op 20 januari 2004 @ 14:40:
Wat doet die komma daar :?
het werkt wel overigens, maar ik snap die komma daar niet
el en i zijn dan van hetzelfde type, in dit geval gewoon var.
In Java bijv:
Java:
1
int a = 0, b = 1;

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.


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

py.mosjuh schreef op 20 januari 2004 @ 14:44:
[...]

als ik het goed heb is die komma simpelweg een tweetal statements na mekaar doen op 1 regel.. zou ook een ";" kunnen zijn
puntkomma ken ik wel, maar komma is nieuw. :)
Rickets schreef op 20 januari 2004 @ 14:44:
[...]

el en i zijn dan van hetzelfde type, in dit geval gewoon var.
In Java bijv:
Java:
1
int a = 0, b = 1;
:? el is een object, i is een integer. Je zou zeggen dat het toch twee verschillende typen zijn?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

BtM909 schreef op 20 januari 2004 @ 14:46:
:? el is een object, i is een integer. Je zou zeggen dat het toch twee verschillende typen zijn?
JavaScript is loosely typed, dus alles mag achter elkaar op een regel, het is gewoon een gecombineerde var declaratie.

JavaScript:
1
var i = 0, d = new Date(), b = true, s = 'etc...';


Overigens is het niet helemaal hetzelfde om er een ; neer te zetten.

JavaScript:
1
2
3
4
5
6
7
8
9
function myfunc() {
    var i = 0, d = new Date(), b = true, s = 'etc...';
    // alle variabelen zijn nu local voor myfunc()
}

function myfunc() {
    var i = 0; d = new Date(); b = true; s = 'etc...';
    // alleen i is local voor myfunc()
}

[ Voor 40% gewijzigd door Verwijderd op 20-01-2004 15:22 . Reden: Ietsje uitgebreid ]


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Verwijderd schreef op 20 januari 2004 @ 15:17:
[...]

JavaScript is loosely typed, dus alles mag achter elkaar op een regel, het is gewoon een gecombineerde var declaratie.
Grappig, wist ik dus niet... :)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 26-05 23:39

mulder

ik spuug op het trottoir

oogjes open, snaveltjes dicht


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

* BtM909 gaat zich schamen, opsluiten en weer back to basic

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 11:43

crisp

Devver

Pixelated

ook bijvoorbeeld in een for-loop heel handig:

JavaScript:
1
for (var i = 0, j = el.length; i < j; i++) {  }


performance technisch ook beter omdat je niet elke iteratie meer de length property hoeft uit te lezen :)

Intentionally left blank


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

crisp schreef op 20 januari 2004 @ 15:29:
ook bijvoorbeeld in een for-loop heel handig:

JavaScript:
1
for (var i = 0, j = el.length; i < j; i++) {  }


performance technisch ook beter omdat je niet elke iteratie meer de length property hoeft uit te lezen :)
Daar was ik al achter gekomen, maar ik zit vrolijk alles te definieren met puntkomma's. Komma's werkt in dit soort gevallen veel makkelijker :)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.

Pagina: 1