jQuery functie waarden optellen
Code (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
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
$('.avg').change(function() {
tmpScore = [];
onderwerpen =[];
score=[];
$('.avg').each(function(i){
rel = $(this).attr('rel');
if (onderwerpen.indexOf(rel) == -1) {
onderwerpen[onderwerpen.length] = rel;
tmpScore[rel] = new Array();
}
tmpScore[rel][tmpScore[rel].length] = parseInt($(this).val());
});
for(var i in onderwerpen) {
counter = 0;
total = 0;
for (j=0; j<tmpScore[onderwerpen[i]].length; j++) {
val = tmpScore[onderwerpen[i]][j]
if (val >= 0) {
total += val;
counter++;
}
}
score[onderwerpen[i]] = (counter != 0) ? Math.round(total/counter) : -1;
}
counter = 0;
total = 0;
for (var i in onderwerpen) {
if (score[onderwerpen[i]] != -1) {
total += score[onderwerpen[i]];
counter++
}
}
scoreT = (counter != 0) ? Math.round(total/counter) : -1;
$("#pb1").progressBar(scoreT);
$("#hiddenscore").val(scoreT);
document.getElementById("testscore").innerHTML = scoreT;
});
tmpScore = [];
onderwerpen =[];
score=[];
$('.avg').each(function(i){
rel = $(this).attr('rel');
if (onderwerpen.indexOf(rel) == -1) {
onderwerpen[onderwerpen.length] = rel;
tmpScore[rel] = new Array();
}
tmpScore[rel][tmpScore[rel].length] = parseInt($(this).val());
});
for(var i in onderwerpen) {
counter = 0;
total = 0;
for (j=0; j<tmpScore[onderwerpen[i]].length; j++) {
val = tmpScore[onderwerpen[i]][j]
if (val >= 0) {
total += val;
counter++;
}
}
score[onderwerpen[i]] = (counter != 0) ? Math.round(total/counter) : -1;
}
counter = 0;
total = 0;
for (var i in onderwerpen) {
if (score[onderwerpen[i]] != -1) {
total += score[onderwerpen[i]];
counter++
}
}
scoreT = (counter != 0) ? Math.round(total/counter) : -1;
$("#pb1").progressBar(scoreT);
$("#hiddenscore").val(scoreT);
document.getElementById("testscore").innerHTML = scoreT;
});
Gewijzigd op 24/11/2011 14:54:50 door Ger van Steenderen
Fout: tmpScore[onderwerpen] is undefined
Regel: 109
was de code tags vergeten, heb het inmiddels aangepast
Zou je tijdelijk een FTP accountje willen hebben, stuur dan svp even een pb, dan kan ik je wel een testomgegeving van 100 mb geven als je hier belang voor hebt.
Edit:
Het is ook geslaagd in IE nu. De oplossing is controleren met een if statementje:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
if(tmpScore[onderwerpen[i]] && tmpScore[onderwerpen[i]].length){
for (j=0; j<tmpScore[onderwerpen[i]].length; j++) {
val = tmpScore[onderwerpen[i]][j]
if (val >= 0) {
total += val;
counter++;
}
}
}
for (j=0; j<tmpScore[onderwerpen[i]].length; j++) {
val = tmpScore[onderwerpen[i]][j]
if (val >= 0) {
total += val;
counter++;
}
}
}
Gewijzigd op 24/11/2011 15:05:40 door gammele vraal
Bedankt voor je aanbod, maar ik heb testomgevingen genoeg alleen heb ik een hekel aan elke keer te moeten uploaden als ik aan het testen ben. En mijn test server heb ik inmiddels ook weer gerepareerd.
Gewijzigd op 24/11/2011 15:20:52 door Ger van Steenderen
Toevoeging op 24/11/2011 15:39:37:
btw, was ik nog vergeten:
je kan je selects beter standaard waarde -1 meegeven