Bei Psychologie überall? Weil ich bei der Suche nach meinem Studiengang auch oft gesehen habe, dass Psychologie im naturwissenschaftlichen Bereich mit sehr viel Mathe angesiedelt wird bei den neuen Bachelor-Studiengängen.
Mathematik ist ja auch DIE Wahrheit, wobei man den eigentlichen Hintergrund und Sinn der Mathematik wohl erst auf dem Weg zum Studium kennen lernt, viele Menschen verbinden ja das Rechnen aus der Schule sehr mit der Mathematik, wobei dies eigentlich nur sehr einfache Spezialfälle aus dem Anwendungsbereich dieser Wahrheit sind.
@TiniX
Da ihr ja schon mitten bei der Umfrage seid möchte ich jetzt nicht der böse Informatiker/"Admin from Hell" bzw. "Bastard Operator from Hell" (kennt das eigentlich jemand

lustige Kurzgeschichte) sein, jedoch sehe ich aus technischer Sicht einige Mängel.
Es wäre dort vielleicht ratsam gewesen sich bei eurer Fachschaft oder direkt einer Fachschaft für Informatik über ausgereifte fertige Umfragesysteme zu erkundigen oder sich mittels einer Spende für die nächste Fachschaftsfeier eine anfertigen zu lassen (wobei ich nicht weiß, wie ihr letzteres so handhabt).
Zunächst ist eure Seite nicht valid, was im allgemeinen kein Problem darstellt, jedoch einige Nutzergruppen mit spezielleren Browsern leider einen effektiven Zutritt zu eurer Umfrage verwehren wird.
So fehlt die Dokumenttypdefinition in der ersten Zeile, wodurch zunächst nicht geklärt ist, welche HTML Variante euer Quelltext nutzt und schlimmer noch, der IE erstmal in den Quirks Mode geht und es mit der IE5 Interpretation laden wird (der IE6/7 besteht darauf, dass eine Seite in der ersten Zeile mit einer gültigen DTD beginnen muss).
Dies ist jedoch nur ein Beispiel von vielen.
Über das Tabellendesign sehe ich einmal hinweg, dies hat für euch zumindest keine funktionellen Einschränkungen.
Da ihr euch auch für eine Verwendung von JavaScript entschieden habt wäre es unbedingt notwendig gewesen ein paar Grundregeln aus der Fibel der Programmierung einzuhalten.
Ich werde hier einmal die Funktion "SumUpPercent_Q023()" von Seite 4 als Beispiel nehmen:
HTML:
<script language="javascript">
function SumUpPercent_Q023() {
var sum = 0;
sum += parseInt(document.all.Q023_Option1.value, 10);
sum += parseInt(document.all.Q023_Option2.value, 10);
sum += parseInt(document.all.Q023_Option3.value, 10);
sum += parseInt(document.all.Q023_Option4.value, 10);
sum += parseInt(document.all.Q023_Option5.value, 10);
sum += parseInt(document.all.Q023_Option6.value, 10);
sum += parseInt(document.all.Q023_Option7.value, 10);
sum += parseInt(document.all.Q023_Option8.value, 10);
sum += parseInt(document.all.Q023_Option9.value, 10);
sum += parseInt(document.all.Q023_Option10.value, 10);
sum += parseInt(document.all.Q023_Other.value, 10);
document.all.Q023_Sum.value = sum;
if (sum > 100)
document.all.Q023_Sum.style.color = '#ff0000';
else if (sum == 100)
document.all.Q023_Sum.style.color = '#00aa00';
else
document.all.Q023_Sum.style.color = '#000000';
}
</script>
Zunächst ist das Attribute "language" schon sehr lange als veraltet (deprecated) eingestufft, womit wir wieder bei invalidem Quelltext wären. Korrekt ist hier type="text/javascript". Es geht hier um eine Angabe des MIME-Type, genaueres könnt ihr gerne unter
RFC 2045 nachlesen.
Aber nun zum eigentlichen Script.
"document.all." zeigt leider nicht in jedem Browser, bzw. jeder Browserversion, auf das entsprechende Objekt.
Ihr solltet es eher so schreiben:
Code:
function fetchElementById(idname)
{
if (document.getElementById)
{
return document.getElementById(idname); // DOM
}
else if (document.all)
{
return document.all[idname]; // IE
}
else if (document.layers)
{
return document.layers[idname]; // NS
}
else
{
return null;
}
}
Und dann über "fetchElementById('Q023_Option1').value" einen Aufruf setzen.
Wobei obiger Quelltext nur eine Anregung sein soll.
Außerdem wendet ihr immer parseInt an und addiert einfach auf, ohne den Wert zuvor zu prüfen. Ihr solltet zunächst mittels "isNaN" und/oder "typeof value == 'number'" testen, ob ihr auch wirklich eine Zahl habt, die ihr addieren könnt. Ansonsten könnte JavaScript nämlich ein paar Fehler an den Debugger setzen, oder einfach "NaN" als Summe ausgeben, womit der nicht Informatiker wenig anfangen kann.
Dazu solltet ihr aber noch einmal die Dokumentation durchlesen, da "isNaN" und"typeof value == 'number'" unterschiedliche Ergebnisse bei gleiche Abfrage liefern.
Im übrigen solltet ihr auch testen, ob die Zahl positiv (inkl. des neutralen der Addition, also der 0) ist.
Und zu guter letzt die Tatsache, wie ihr euer JavaScript über ein Event aufruft (was übrigens abermals nicht valid ist).
So nutzt ihr onpaste="SumUpPercent_Q023();" und onkeyup="SumUpPercent_Q023();".
Jedoch hat man sich hier seit DOM dazu entschieden JavaScript von der Auszeichnungssprache (z.B. HTML) zu trennen, so dass es diese onXXX Attribute nicht mehr gibt.
Um jedoch trotzdem einen Aufruf zu gewährleisten regelt man dies über das Javascript selbst, z.B.:
Code:
fetchElementById('Q023_Option1').onkeyup = SumUpPercent_Q023;
Dies müsste man jetzt jedoch nochmals für jedes einzelne Element schreiben

Da Informatiker wie auch Matematiker von Natur aus Faul sind gibt es natürlich auch einen einfacheren Weg:
Code:
fetchElementbyTagName(parentobj, tag)
if (typeof parentobj.getElementsByTagName != 'undefined')
{
return parentobj.getElementsByTagName(tag); // DOM
}
else if (parentobj.all && parentobj.all.tags)
{
return parentobj.all.tags(tag); // IE / NS
}
else
{
return new Array();
}
}
var inputs = fetchElementbyTagName(document, 'input');
for (var i = 0; i < inputs.length; i++)
{
if (inputs[i].id && inputs[i].id.indexOf('Q023_Option') != -1)
{
var obj =fetchElementById(inputs[i].id);
obj.onkeyup = SumUpPercent_Q023;
obj.onpaste = SumUpPercent_Q023;
}
}
Und dies zieht sich leider durch die Seite

Es könnten übrigens syntaktische Fehler im obigen Quelltext stehen, da ich ihn direkt aus der Hand geschrieben habe, aber falls dort ein Fehler drin ist sollte es kein Problem sein diesen zu beheben. Ansonsten kann ich es natürlich auch korregieren, jedoch würde ich mich dann nur um Fehler innerhalb des hier geschriebenen Quelltextes kümmern
Ich hoffe zumindest, dass der serverseitige Quelltext besser geschrieben ist.
Versteht aber bitte, wenn ich an dieser Umfrage nicht teilnehmen möchte, da ich aufgrund der doch sehr groben Schnitzer im clientseitigen Bereich nicht davon ausgehen kann, dass ihr einen ausreichenden Datenschutz meiner Informationen gewähren könnt.