Hi @ll,
ich möchte ein kleines Programm schreiben, mit dem es möglich ist einfache Fragebögen zu erstellen, auszufüllen und zu archivieren. Zumindest ist mir kein (OpenSource)-Programm bekannt, das dies tut.
Da mir kein Standardformat für eine solche Aufgabe bekannt ist, muss ich wohl meinen eigenen Standard entwerfen. Ok, ich mache mir vermutlich Illusionen, wenn ich denke, dass sich jemals jemand für mein Format interessiert, aber zumindest wäre es die Zielsetzung, dass jeder andere Programmierer das Format verstehen kann und sich auch ein eigenes Programm schreiben, dass zu meinem Format kompatibel ist
.
Eine weitere Idee an meinem Fomat ist, dass ein ausgefülltes Formular und ein nicht-ausgefülltes Formular nicht zwei verschiedene Standards brauchen. So kann man auch einen Fragebogen zur Hälfte ausfüllen, speichern und später weiter machen.
Dann sollte das Format natürlich noch möglichst simpel sein. Und trotzdem so, dass man es noch erweitern kann, wenn man es denn braucht. Zum Beispiel in dem man weitere optionale Tags oder Attribute zulässt.
Ich habe damit schonmal angefangen. Hier findet ihr einen Beispielfragebogen, der per xslt in einen
html-Frabebogen transformiert wird:
http://cipher-code.de/fragebogen/bogen.xml
Wenn ihr dann anfängt das Formular auszufüllen und es dann abschickt, dann tritt dieses php-Script in Kraft:
http://cipher-code.de/fragebogen/parse.quelltext.php
Es ergänzt die entsprechenden Tags, die anzeigen, welche Elemente ihr angewählt habt und gibt den ausgefüllten Fragebogen wieder zurück. Im Browser sieht man dann natürlich keinen Unterschied. Nur, wenn man sich den Quelltext ansieht
.
Eine Kurzbeschreibung des Formats:
Das Grundgerüst:
XML-Code:
<?
xml version="1.0" ?>
<questionaire>
... Fragen ...
</questionaire>
Eine Frage kann so aussehen:
XML-Code:
<question multiple="1">
<text>Hälst du dich für toll? (Mehrfachantwort möglich)</text>
<answer>Ja</answer>
<answer>Nein</answer>
</question>
multiple=0|1 gibt an, ob Mehrfachanwahl möglich ist.
text ist die Frage
und die answer-tags sind... naja... eine Antwortmöglichkeit eben
Eine Antwortmöglichkeit kann auch den type="text" haben. Dann besteht die Möglichkeit eine freie Antwort einzugeben:
<answer type="text">Sonstiges:</answer>
Dann gibt es auch noch die Möglichkeit Fragen in blocks zusammenzufassen:
XML-Code:
<block multiple="1">
<text>Allgemeinscheiss</text>
<question>
<text>Wie findest du den Mist?</text>
</question>
<question>
<text>Was hälst du von dem Gesamtkonzept?</text>
</question>
<answer>Toll!</answer>
<answer>Mittel!</answer>
<answer>Ich hab Hunger!</answer>
</block>
Ein Block sind mehrere Fragen, die die gleichen Antworten haben und dann zu einem großen Frageblock zusammengefasst werden können. In meinem Link oben sieht man, wie es aussieht.
Welche Antworten angewählt wurden kann wird bei einfachen Fragen (Fragen, die nich in einem block sind) dadurch angezeit, dass selected="selected" als Attribut in der Antwort gespeichert wird:
<answer selected="selected">Nein</answer>
Bei Blocks wird im <question>-Tag angegeben, welche Antworten gewählt wurden:
XML-Code:
<question>
<text>Was hälst du von dem Gesamtkonzept?</text>
<selected index="2" />
</question>
Dieser Tag besagt, dass die 2. Antwortmöglichkeit angewählt wurde.
Was halted ihr davon? Findet ihr das Format so ok, oder sollte ich es lieber anders machen?
Und hat wer 'ne Idee, warum das
html-Formular, das von xslt generiert wird im Opera nicht funktioniert? Wenn man im Opera auf fertig klickt werden einfach keine Variabeln an das php-script übergeben.
Letzter Tipp: Drogen. Machen zwar nicht glücklich, geben einem aber wenigstens das Gefühl glücklich zu sein.
Have a lot of fun!