0 votes
in Methoden-Fragen by s148940 (110 points)

Kann man mittels eines Befragungsprojekts bei soscisurvey, z.B. über einen Fragebogen mit offener Texteingabe oder einfacher Auswahl, Teilnehmern ermöglichen, sich für eine Veranstaltung einzutragen und dabei nach einer gewissen Anzahl von Eingaben die Veranstaltung als "voll/belegt" zu markieren bzw. diese nicht mehr als Auswahlmöglichkeit für weitere Teilnehmern zur Verfügung zu stellen?

1 Answer

0 votes
by SoSci Survey (327k points)

Ja, dies ist möglich und wir haben vergleichbare "Fragebögen" auch schon der öfteren implementiert.

Um die Belegung zu prüfen, würden Sie z.B. mittels statistic() ermitteln, wie viele Datensätze mit einer bestimmten Auswahl für eine Variable (Veranstaltung) schon vorliegen. Diesen Wert würden Sie dann mit den Grenzen vergleichen. Und dann könnten Sie die Befragten entweder abweisen oder die Auswahl aus einer Frage nehmen - genauer gesagt: Mittels Array und question() nur jene Optionen anzeigen, die noch verfügbar sind.

by s148940 (110 points)
Vielen Dank für die Antwort. Nach langer Zeit habe ich nun versucht, dies umzusetzen. Ich scheitere jedoch an den php-Codes, da ich hier Anfänger bin. Ich hoffe, dass wieder jemand so zeitnah antworten kann (wirklich tolle Arbeit!).

Ich habe es bereits geschafft, dass ein Text in der Frage angezeigt wird, der dynamisch darüber Auskunft gibt, wie oft ein Item schon geklickt wurde (über statistic). Aber wie das über Array und question geht, habe ich noch nicht hinbekommen.
Wie müsste der php-Code dazu aussehen?

Momentaner Stand:

$anzahlWS1 = statistic('count', 'WS01', 1);  // Häufigkeit WS1
$anzahlWS2 = statistic('count', 'WS01', 2);  // Häufigkeit WS2
$anzahlWS3 = statistic('count', 'WS01', 3);  // Häufigkeit WS3
$anzahlWS4 = statistic('count', 'WS01', 4);  // Häufigkeit WS4
$anzahlWS5 = statistic('count', 'WS01', 5);  // Häufigkeit WS5
$anzahlWS6 = statistic('count', 'WS01', 6);  // Häufigkeit WS6
$anzahlWS7 = statistic('count', 'WS01', 7);  // Häufigkeit WS7
$anzahlWS8 = statistic('count', 'WS01', 8);  // Häufigkeit WS8
$anzahlWS9 = statistic('count', 'WS01', 9);  // Häufigkeit WS9

html('<i><p><u>Aktuelle Belegungszahlen:</u><br>
Workshop 1: '.$anzahlWS1.' Personen<br>
Workshop 2: '.$anzahlWS2.' Personen<br>
Workshop 3: '.$anzahlWS3.' Personen<br>
Workshop 4: '.$anzahlWS4.' Personen<br>
Workshop 5: '.$anzahlWS5.' Personen<br>
Workshop 6: '.$anzahlWS6.' Personen<br>
Workshop 7: '.$anzahlWS7.' Personen<br>
Workshop 8: '.$anzahlWS8.' Personen<br>
Workshop 9: '.$anzahlWS9.' Personen</i><br><br><br></p>');


question('WS01');
by SoSci Survey (327k points)
Als erstes ist es ein wenig praktischer, wenn Sie keine unterschiedlichen Variablen verwende, sondern die Werte direkt in ein Array speichern:

$anzahlWS = [
  1 => statistic('count', 'WS01', 1),  // Häufigkeit WS1
  2 => statistic('count', 'WS01', 2),  // Häufigkeit WS2
  3 => statistic('count', 'WS01', 3),  // Häufigkeit WS3
  ...
];

Und weil wir programmieren, können wir das auch mit einer Schleife erledigen:

$anzahlWS = [];
for ($i = 1; $i <= 9; $i++) {
  $anzahlWS[$i] = statistic('count', 'WS01', $i);
}

Nett, oder?

Die Ausgabe dann entsprechend:

html('<p style="margin-bottom: 3em;"><u>Aktuelle Belegungszahlen:</u><br>');
for ($i = 1; $i <= 9; $i++) {
     html('Workshop '.$i.': '.$anzahlWS[$i].' Personen<br>');
};
html('</p>');

Damit kann man auch eine Liste der Kurse erstellen, die noch nicht voll sind - also z.B. weniger als 20 haben:

$frei = [];
for ($i = 1; $i <= 9; $i++) {
  if ($anzahlWS[$i] <  20) {
    $frei[] = $i;
  }
}
debug($i);

Und so könnte man dann auch aus einer eine Frage nur diese Optionen anbieten:

question('AB01', $frei);

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...