jQuery functie waarden optellen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

Ger van Steenderen
Tutorial mod

Ger van Steenderen

24/11/2011 14:40:57
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
$('.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;
});
Gewijzigd op 24/11/2011 14:54:50 door Ger van Steenderen
 
PHP hulp

PHP hulp

28/11/2024 13:47:01
 
Gammele vraal

gammele vraal

24/11/2011 14:46:36
Quote Anchor link
Heb je toevallig nog meer veranderd? Ik krijg hem niet werkend:

Fout: tmpScore[onderwerpen] is undefined
Regel: 109
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

24/11/2011 14:51:55
Quote Anchor link
was de code tags vergeten, heb het inmiddels aangepast
 
Gammele vraal

gammele vraal

24/11/2011 14:56:32
Quote Anchor link
Top Ger! Dit draait als een malle! Nu eens kijken waarom IE 'm bugged bedankt voor je hulp Ger.

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)
PHP script in nieuw venster Selecteer het PHP script
1
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++;
  }
 }
}    
Gewijzigd op 24/11/2011 15:05:40 door gammele vraal
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

24/11/2011 15:10:39
Quote Anchor link
Geen dank, vond het wel een leuke uitdaging :-)

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
 
Gammele vraal

gammele vraal

24/11/2011 15:28:15
Quote Anchor link
Oké, maar wat doet dit stukje nou precies met de waarde -1. Als er NVT wordt ingevoerd?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
if (onderwerpen.indexOf(rel) == -1) {
    onderwerpen[onderwerpen.length] = rel;
    tmpScore[rel] = new Array();
}
tmpScore[rel][tmpScore[rel].length] = parseInt($(this).val());
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

24/11/2011 15:38:09
Quote Anchor link
niks, indexOf controleert of een element bestaat in de array en geeft -1 terug als dat niet zo is. Ik heb de arrays assoc gemaakt omdat je dan meer controle hebt.

Toevoeging op 24/11/2011 15:39:37:

btw, was ik nog vergeten:
je kan je selects beter standaard waarde -1 meegeven
 

Pagina: « vorige 1 2



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.