Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Fragebögen: Erstellen eines "guten" Standards... (https://www.delphipraxis.net/103988-frageboegen-erstellen-eines-guten-standards.html)

yankee 25. Nov 2007 18:51


Fragebögen: Erstellen eines "guten" Standards...
 
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:
XML-Code:
<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:
XML-Code:
<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.

freak4fun 25. Nov 2007 20:07

Re: Fragebögen: Erstellen eines "guten" Standards.
 
Wieso schließt du eine Antwortmöglichkeit mit varaiblen Text aus?

yankee 25. Nov 2007 20:48

Re: Fragebögen: Erstellen eines "guten" Standards.
 
Zitat:

Zitat von freak4fun
Wieso schließt du eine Antwortmöglichkeit mit varaiblen Text aus?

Tue ich doch garnicht. Dafür gibt es doch die Option type="text" vom answer-tag. Oder was meinst du?

freak4fun 25. Nov 2007 22:19

Re: Fragebögen: Erstellen eines "guten" Standards.
 
Hab ich übersehen, sorry.

Neuromancer 28. Nov 2007 12:19

Re: Fragebögen: Erstellen eines "guten" Standards.
 
Zitat:

Zitat von yankee
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.

Schon mal mit
XML-Code:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
probiert?

Außerdem fehlt die Instruktion "output":
XML-Code:
<xsl:output method="html"/>
Ich glaube, die ist aber nicht zwingend notwendig.

In
XML-Code:
<form action="parse.php">
fehlt das Method-Attribut (method="POST").

Ich weiß nicht, inwiefern die verschiedenen Browser diese "Schlampigkeiten" (sorry) verzeihen, kann sein, dass Opera eben nicht so tolerant ist. Habe aber auch kein Opera hier installiert, kann es also auch nicht testen.

Gruß

shmia 30. Nov 2007 13:26

Re: Fragebögen: Erstellen eines "guten" Standards.
 
Vielleicht sollte man bei Mehrfachauswahl die Anzahl der möglichen Antworten limitieren.
Man denke an die Fahrschulbögen oder daran:
XML-Code:
<block maxanswers="3">
    <text>Kino</text>
    <question>
      <text>welches sind deine 3 Lieblingsschauspielerinnen ?</text>
    </question>
    <answer>Nicole Kidmann</answer>
    ...
  </block>
Damit wäre das Attribut multiple nicht mehr nötig.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:05 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz