Struppi: Sinnvolles Zitieren

Beitrag lesen

Hier meine Lösung für die Allgemeinheit. Vielleicht nicht JavaScript-Guru-Supercode, aber es funktioniert:

läßt sich natürlich schwer kontrollieren. Aber ich frag mich warum du es so umständlich machen willst. Du kannst doch jedesmal die anzeige neu berechnen, das sollte mit heutigen Computer in akzeptabler Geschwindigkeit ablaufen.

Meine Umsetzung würde ungefähr so aussehen:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">  
<head>  
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">  
  <title></title>  
<script type="text/javascript">  
function count_status()  
{  
    var status = document.getElementsByName('status')  
  
    var sum = {};  
    // Alle Werte auf 0 setzen  
    var el;  
    for(var i = 0; el = status[0].options[i++];)  
    {  
         var val = el.value || el.text;  
         sum[val] = 0;  
    }  
    // alle Listen checken  
    for(var i = 0; el = status[i++];)  
    {  
        var val = el.options[el.selectedIndex].value || el.options[el.selectedIndex].text;  
        sum[val]++;  
    }  
    // und ausgeben  
    for(var feld in sum)  
    {  
       var out = document.getElementById(feld);  
       out.firstChild.data = sum[feld];  
    }  
}  
window.onload = function()  
{  
    var status = document.getElementsByName('status')  
    for(var i = 0; i < status.length; i++) status[i].onchange = count_status;  
    count_status();  
}  
</script>  
</head>  
  
<body>  
  
<form action="#">  
<p>  
x: <strong id="x">0</strong> y: <strong id="y">0</strong> z: <strong id="z">0</strong>  
</p>  
<table>  
<tr>  
<td> Zeile 1 </td> <td>  
<select name="status">  
<option>x </option> <option>y </option> <option>z </option>  
</select>  
</td>  
</tr>  
  
<tr>  
<td> Zeile 2 </td>  <td>  
<select name="status">  
<option>x </option> <option>y </option> <option>z </option>  
</select>  
</td>  
</tr>  
  
<tr>  
<td> Zeile 3 </td> <td>  
<select name="status">  
<option>x </option> <option>y </option> <option>z </option>  
</select>  
</td>  
</tr>  
  
<tr>  
<td> Zeile 4 </td>  
<td>  
<select name="status">  
<option>x </option> <option>y </option> <option>z </option>  
</select>  
</td>  
</tr>  
</table>  
</form>  
</body></html>

Struppi.

--
Javascript ist toll (Perl auch!)