Waarom gaat deze simpele JS code niet ?

Pagina: 1
Acties:

  • Choller
  • Registratie: Juli 2001
  • Laatst online: 22-05-2024
Het gaat om deze code
code:
1
document.writeln("<td><input type=text name=PTS size=5 onkeyup=\"document.forms['nbalivestats'].PPG.value = (parseInt(document.forms['nbalivestats'].PTS.value, 10) / parseInt(document.forms['nbalivestats'].GP.value, 10))\"></td>")

Ik krijg hm niet aan de praat. Iemand had mij een tip gegeven (concenation ofzo hehe) maar het is mij niet echt gelukt.

Kan iemand mij aangeven hoe het wel moet ? Alvast bedankt.

P.S.: Mod, sorry voor de eerdere thread |:(

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 16:13

Pelle

🚴‍♂️

Wat wil je nou? Hier werkt het prima hoor. Er wordt gewoon een td geschreven met een input erin. Dus geef even aan wat je nou wilt, en wat je nou denkt dat er mis gaat. Anders kunnen we hier niet zoveel mee.

  • Tsjipmanz
  • Registratie: Oktober 2000
  • Laatst online: 13-05 14:52

Tsjipmanz

Der Rudi ist da

edit:
|:( Stom foutje :)

Maar idd, wat wil je precies? Heb je bij de uiteindelijke weergave wel table-tags eromheen staan e.d. ?

There's no such thing as a mistake, just happy accidents - Bob Ross
Relaxte muziek: altijd okee!
- Soulseek rulez -


  • Choller
  • Registratie: Juli 2001
  • Laatst online: 22-05-2024
Jah.. hij laat wel iets zien, maar die onkeyup code werkt niet.

Anders post ik die hele tabel maar hierin..
code:
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<table border="1">
<tr>
<td align="center">Nickname</td>
<td align="center">GP</td>
<td align="center">PTS</td>
<td align="center">PPG</td>
<td align="center">FGM</td>
<td align="center">FGA</td>
<td align="center">FG%</td>
<td align="center">3PM</td>
<td align="center">3PA</td>
<td align="center">3P%</td>
<td align="center">FTM</td>
<td align="center">FTA</td>
<td align="center">FT%</td>
<td align="center">REB</td>
<td align="center">RPG</td>
<td align="center">BLK</td>
<td align="center">BPG</td>
<td align="center">STL</td>
<td align="center">SPG</td>
<td align="center">AST</td>
<td align="center">APG</td>
<td align="center">FL</td>
<td align="center">FPG</td>
<td align="center">PF</td>
<td align="center">PFG</td>
<td align="center">PA</td>
<td align="center">PAG</td>
<td align="center">OR</td>
<td align="center">ORG</td>
<td align="center">DR</td>
<td align="center">DRG</td>
<td align="center">TO</td>
<td align="center">TPG</td></tr>

<script language="JavaScript">
for (i = 1; i <= tmc; i++)
{
document.writeln("<tr>")
document.writeln("<td><input type=text name=Nickname size=12></td>")
document.writeln("<td><input type=text name=GP size=5></td>")
document.writeln("<td><input type=text name=PTS size=5 onkeyup=\"document.forms['nbalivestats'].PPG.value = (parseInt(document.forms['nbalivestats'].PTS.value, 10) / parseInt(document.forms['nbalivestats'].GP.value, 10))\"></td>")
document.writeln("<td><input type=text name=PPG size=5></td>")
document.writeln("<td><input type=text name=FGM size=5></td>")
document.writeln("<td><input type=text name=FGA size=5 onkeyup=\"document.forms['nbalivestats'].FGP.value = (parseInt(document.forms['nbalivestats'].FGM.value, 10) / parseInt(document.forms['nbalivestats'].FGA.value, 10))\"></td>")
document.writeln("<td><input type=text name=FGP size=5></td>")
document.writeln("<td><input type=text name=TPM size=5></td>")
document.writeln("<td><input type=text name=TPA size=5 onkeyup=\"document.forms['nbalivestats'].TPP.value = (parseInt(document.forms['nbalivestats'].TPM.value, 10) / parseInt(document.forms['nbalivestats'].TPA.value, 10))\"></td>")
document.writeln("<td><input type=text name=TPP size=5></td>")
document.writeln("<td><input type=text name=FTM size=5></td>")
document.writeln("<td><input type=text name=FTA size=5 onkeyup=\"document.forms['nbalivestats'].FTP.value = (parseInt(document.forms['nbalivestats'].FTM.value, 10) / parseInt(document.forms['nbalivestats'].FTA.value, 10))\"></td>")
document.writeln("<td><input type=text name=FTP size=5></td>")
document.writeln("<td><input type=text name=REB size=5 onkeyup=\"document.forms['nbalivestats'].RPG.value = (parseInt(document.forms['nbalivestats'].REB.value, 10) / parseInt(document.forms['nbalivestats'].GP.value, 10))\"></td>")
document.writeln("<td><input type=text name=RPG size=5></td>")
document.writeln("<td><input type=text name=BLK size=5 onkeyup=\"document.forms['nbalivestats'].BPG.value = (parseInt(document.forms['nbalivestats'].BLK.value, 10) / parseInt(document.forms['nbalivestats'].GP.value, 10))\"></td>")
document.writeln("<td><input type=text name=BPG size=5></td>")
document.writeln("<td><input type=text name=STL size=5 onkeyup=\"document.forms['nbalivestats'].SPG.value = (parseInt(document.forms['nbalivestats'].STL.value, 10) / parseInt(document.forms['nbalivestats'].GP.value, 10))\"></td>")
document.writeln("<td><input type=text name=SPG size=5></td>")
document.writeln("<td><input type=text name=AST size=5 onkeyup=\"document.forms['nbalivestats'].APG.value = (parseInt(document.forms['nbalivestats'].AST.value, 10) / parseInt(document.forms['nbalivestats'].GP.value, 10))\"></td>")
document.writeln("<td><input type=text name=APG size=5></td>")
document.writeln("<td><input type=text name=FL size=5 onkeyup=\"document.forms['nbalivestats'].FPG.value = (parseInt(document.forms['nbalivestats'].FL.value, 10) / parseInt(document.forms['nbalivestats'].GP.value, 10))\"></td>")
document.writeln("<td><input type=text name=FPG size=5></td>")
document.writeln("<td><input type=text name=PF size=5 onkeyup=\"document.forms['nbalivestats'].PFG.value = (parseInt(document.forms['nbalivestats'].PF.value, 10) / parseInt(document.forms['nbalivestats'].GP.value, 10))\"></td>")
document.writeln("<td><input type=text name=PFG size=5></td>")
document.writeln("<td><input type=text name=PA size=5 onkeyup=\"document.forms['nbalivestats'].PAG.value = (parseInt(document.forms['nbalivestats'].PA.value, 10) / parseInt(document.forms['nbalivestats'].GP.value, 10))\"></td>")
document.writeln("<td><input type=text name=PAG size=5></td>")
document.writeln("<td><input type=text name=OR size=5 onkeyup=\"document.forms['nbalivestats'].ORG.value = (parseInt(document.forms['nbalivestats'].OR.value, 10) / parseInt(document.forms['nbalivestats'].GP.value, 10))\"></td>")
document.writeln("<td><input type=text name=ORG size=5></td>")
document.writeln("<td><input type=text name=DR size=5 onkeyup=\"document.forms['nbalivestats'].DRG.value = (parseInt(document.forms['nbalivestats'].DR.value, 10) / parseInt(document.forms['nbalivestats'].GP.value, 10))\"></td>")
document.writeln("<td><input type=text name=DRG size=5></td>")
document.writeln("<td><input type=text name=TO size=5 onkeyup=\"document.forms['nbalivestats'].TOG.value = (parseInt(document.forms['nbalivestats'].TO.value, 10) / parseInt(document.forms['nbalivestats'].GP.value, 10))\"></td>")
document.writeln("<td><input type=text name=TOG size=5></td>")
document.writeln("</tr>")
//document.writeln(bleh + " ok")
}
</script>
</table>

Het is de bedoeling dat de 4e kolom een berekining uitvoert. Deze is dus 3e kolom gedeeld door 2e kolom. Deze moet automatisch uitgevoerd worden zodra je iets in de 3e kolom invult. Het had wel gewerkt zonder de writeln tag maar omdat ik de writeln code "moet" gebruiken krijg ik hm niet aan de praat met al die code's.

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 16:13

Pelle

🚴‍♂️

Maak voor de gein eens een form met de naam nbalivestats. Gaat een hoop schelen.

  • Choller
  • Registratie: Juli 2001
  • Laatst online: 22-05-2024
Dat heb ik uiteraard gedaan....
code:
1
2
3
<form name="nbalivestats">
<table border="1">
blablabla

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 16:13

Pelle

🚴‍♂️

Nou, ik weet niet wat je nou precies allemaal aan het rotzooien bent geweest, maar hier werkt het perfect.

Oh, misschien ook wel handig om te weten.. als jouw variabele tmc groter is dan 1, dan wordt jouw stukje code dus meer dan 1 keer uitgevoerd, en worden er meerdere form-elementen met dezelfde naam aangemaakt. En ja, dan gaat het fout :{

  • Choller
  • Registratie: Juli 2001
  • Laatst online: 22-05-2024
Dat zal het dan zijn, want deze is altijd groter dan 1. Het hangt af hoeveel mensen er mee hebben gedaan en dan krijg je x aantal rijen om in te vullen.
edit: En inderdaad getest met tmc=1 en het werkt...

Hmm...hoe zal ik die loop dan aanpakken.... ??

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 15:53

RM-rf

1 2 3 4 5 7 6 8 9

het werk prima, maar je berekening is een beetje krom en levert veel fouten op:

to zal je form allerlei dubbelle elementen kennen als tmc groter is dan 1 (wat waarschijnlijk zo is, anders heb je de hele for-loop niet nodig)

verder levert een verkeerde invoer gelijk NaN op, wat een fout oplevert, en als de deler nul is gaat het ook fout.

zorg dat je velden uniek zijn, door een unieke id aan de name toe te voegen, bv de i uit je for-loop
write("name=\"PPG"+i+"\"")

gebruik een functie waarin je de gebruikte andere velden aan meegeeft
write("onkeyup=\"calcul('PPS"+i+"', 'FGM"+i+"')\"")

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


  • Tsjipmanz
  • Registratie: Oktober 2000
  • Laatst online: 13-05 14:52

Tsjipmanz

Der Rudi ist da

Het is mij sowieso niet geheel duidelijk waarom die variabele tmc wordt gebruikt.

Lukt het wel wanneer je de code "opsplitst"? Dus eerst de berekening, de uitkomst hiervan in een variabele en deze variabele tussen de TD's zetten?

Misschien ook even handig om de browser waarin je het uittest te vermelden.

There's no such thing as a mistake, just happy accidents - Bob Ross
Relaxte muziek: altijd okee!
- Soulseek rulez -


  • Choller
  • Registratie: Juli 2001
  • Laatst online: 22-05-2024
Thanx for the tip over de loop.

Van die Nan ben ik op de hoogte en zal geen probleem opleveren.

Ik gebruik die variabele tmc om een popupscherm te openen en daarin wordt gevraagd hoeveel mensen mee hebben gedaan aan de toernooi, aan de hand daarvan draai ik een loop die dan een x aantal rijen in de tabellen tevoorschijn tovert.

  • Choller
  • Registratie: Juli 2001
  • Laatst online: 22-05-2024
Ik heb inmiddels die javascript shit weggehaald en alles heel makkelijk in php gedaan.
PHP:
1
&lt;?blablabla    echo&quot;&lt;tr&gt;&quot;;    echo&quot;&lt;td&gt;&lt;input type=text name=\&quot;Nickname\&quot; size=12&gt;&lt;/td&gt;&quot;;    echo&quot;&lt;td&gt;&lt;input type=text name=\&quot;GP&quot; .$i. &quot;\&quot; size=5&gt;&lt;/td&gt;&quot;;    echo&quot;&lt;td&gt;&lt;input type=text name=\&quot;PTS&quot; .$i. &quot;\&quot; size=5 onkeyup=\&quot;document.forms['nbalivestats'].PPG&quot; .$i. &quot;.value = (parseInt(document.forms['nbalivestats'].PTS&quot; .$i. &quot;.value, 10) / parseInt(document.forms['nbalivestats'].GP&quot; .$i. &quot;.value, 10))\&quot;&gt;&lt;/td&gt;&quot;;    echo&quot;&lt;td&gt;&lt;input type=text name=\&quot;PPG&quot; .$i. &quot;\&quot; size=5&gt;&lt;/td&gt;&quot;;blablabla?&gt;

:)
Pagina: 1