0 votes
in SoSci Survey (dt.) by s122767 (165 points)

Ich würde gerne eine offene Frage Stellen mit 2 Ausweichfunktionen, da dies nach dem Online Support nicht möglich ist, habe ich es mit einer Kombinationsfrage probiert. -->

Ich habe eine Kombinationsfrage gemacht aus einer offenen Frage (TF14) und einer Frage Skala Zwischenwerte beschriftet (TF03)
question('TF14','combine=TF03');

aber wie schaffe ich das, dass die Fragen trotzdem ausgefüllt werden müssen und die Frage TF14 ausgefülllt ist, ich dann nicht mehr was bei TF03 ankreuzen muss?
ich hoffe das war verständlich formuliert

Ich hänge ein Screenshot von der Frage an.

(TF14 ist Anzahl und TF03 ist nicht bekannt + nicht vorhanden)

Also im Genauen nochmal was meine Frage ist =

Also wenn ich die Anzahl angegeben habe, dass ich dann nicht mehr was ankreuzen muss/kann oder wenn ich was angekreuzt habe, dass ich dann nichts in der Anzahl eingeben kann!

Ich bitte um Hilfe,

Liebste Grüße

1 Answer

0 votes
by SoSci Survey (328k points)

aber wie schaffe ich das, dass die Fragen trotzdem ausgefüllt werden müssen und die Frage TF14 ausgefülllt ist, ich dann nicht mehr was bei TF03 ankreuzen muss?

Dies können Sie mit einer individuellen Antwortprüfung erreichen.

Erzeugen Sie mittels getItems() einfach drei Arrays (Listen), welche Items in welcher der kombinierten Frage beantwortet bzw. angekreuzt sind. Führen Sie die Listen mittels arrray_merge() zusammen und prüfen Sie, ob ein oder mehrere Items am Ende noch fehlen.

Details gerne auf Nachfrage. Posten Sie dann bitte auch gleich den PHP-Code, soweit Sie gekommen sind.

PS: Ich kann es im Screenshot nicht genau erkennen. Aber womöglich haben Sie das Fragen vom Typ "Auswahl" verwendet. Ich vermute, dass Sie "Mehrfachauswahl"-Fragen benötigen.

PPS: Wenn es Ihnen nur um Auswahlfragen (pro Zeile) geht und Sie mit Dropdowns zufrieden sind, dann können Sie auch mehrere Ausweichoptionen definieren. Erstellen Sie eine Frage vom Typ "Skala (Zwischenwerte beschriftet)", definieren Sie dort die Auswahloptionen und Ausweichoptionen als Ausprägungen für die Skala und schalten Sie den Darstellungsmodus (weiter unten in der Frage) auf "Dropdown".

by s122767 (165 points)
Ich habe noch nicht so viel Erfahrung mit PHP also nicht lachen, falls ich vollkommen daneben liege = das ist jetzt der Code den ich erstellt habe, ich habe ihn auch auf die nächste Seite oben gestellt, aber derzeit passiert noch nichts, ich habe zwar keine Fehlermeldung, aber nichts passiert

Zur wiederholung: Ich habe eine Kombinationsfrage gemacht aus einer offenen Frage (TF14) und einer Frage Skala Zwischenwerte beschriftet (TF03)


Hier der PHP Code=


// Eine Liste aller Items in der Frage erstellen
$items01 = getItems('TF14');
$items02 = getItems('TF03');
$itemliste = array_merge ($items01, $items02);

// Ermitteln der beantworteten Items
$answered01 = getItems('TF14', '>', 0);
$answered02 = getItems('TF03', '>', 0);
$answeredliste = array_merge ($answered01, $answered02);

// Fehler und zurück, falls keins oder alle beantwortet wurden
if ((count($answeredliste) == 0) and (count($answeredliste) == count($itemliste))) {
  repeatPage('TF17');
}
by SoSci Survey (328k points)
Gar nicht mal schlecht für's Erste!

Ich denke, bei der eigentlichen Filterbedingung am Ende passt es noch nicht. Und zwar prüfen Sie, ob kein einiziges Item beantwortet wurde (==0) und ob zugleich genausoviele Items generell vorliegen (der zweite Vergleich). Das macht m.E. inhaltlich noch nicht viel Sinn.

Prüfen Sie stattdessen, ob mehr Items vorliegen als beantwortet sind:

if (count($answeredliste) < count($itemliste)) {

Ich bin weiterhin nicht sicher, ob die ersten getItems() funktionieren. Da fehlt m.E. ein 'all'. Nachdem TF14 und TF03 dieselben items haben sollten, versuchen Sie die ersten drei Zeilen wie folgt:

$itemliste = getItems('TF14', 'all');

Last but not least, lassen Sie sich von SoSci Survey ein wenig bei der eventuellen Fehlersuche helfen, indem Sie folgende beide Zeilen vor dem IF ergänzen:

debug($itemliste);
debug($answeredliste);
by s122767 (165 points)
So das ist jetzt mein PHP Code =
Da funktioniert jetzt gut, dass mindestens eins beantwortet werden muss, aber ich kann immer noch in der Anzahl etwas reinschreiben und Anzahl nicht bekannt ankreuzen, wie schaffe ich dass nur eins davon ausgefüllt werden kann (also entweder nur Anzahl eintragen oder etwas ankreuzen)

// Eine Liste aller Items in der Frage erstellen
$items01 = getItems('TF14', 'all');
$items02 = getItems('TF03', 'all');
$itemliste = array_merge ($items01, $items02);

// Ermitteln der beantworteten Items
$answered01 = getItems('TF14', '>', 0);
$answered02 = getItems('TF03', '>', 0);
$answeredliste = array_merge ($answered01, $answered02);

debug($itemliste);
debug($answeredliste);

// Fehler und zurück, falls keins oder alle beantwortet wurden
if ((count($answeredliste) == 0) and (count($answeredliste) < count($itemliste))) {
  repeatPage('TF17');
}

Und vielen lieben Dank für die Hilfe :)
by SoSci Survey (328k points)
> aber ich kann immer noch in der Anzahl etwas reinschreiben und Anzahl nicht bekannt ankreuzen, wie schaffe ich dass nur eins davon ausgefüllt werden kann (also entweder nur Anzahl eintragen oder etwas ankreuzen)

Wenn sich beides direkt bei Ausfüllen ausschließen soll, dann müssen Sie JavaScript-Code programmieren. Das ist aber ein wenig anspruchsvoller.

Wenn Sie das Abwählen von Skalenpunkten erlauben (einzustellen in den Fragebogen-Einstellungen), können Sie auch im PHP-Code prüfen und ggf. einen Fehler zeigen. Und zwar würden Sie die Schnittmenge bilden:

if (count(array_intersect($answered01, $answered02)) > 0) {
  repeatPage('inkonsistent');
}

Haben Sie sich auch mal die Option angesehen, dass Sie in einer Skalenfrage ihre regulären Antworten + 2 Ausweichoptionen festlegen? Und das dann ggf. als Dropdown anzeigen.

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

...