0 votes
in SoSci Survey (dt.) by s137973 (240 points)

Ich habe ein kleines Problem. Ich habe folgende kombinierte Frage:

question('C001,'combine=C002', 'combine=C003',);

Dort sind jeweils Platzhalter angelegt:

%Lehrende1%, %Lehrende2%, %Lehrende3%

Es funktioniert alles soweit wunderbar. Nur möchte ich, dass die leeren Platzhalter (weil die Person z.B. nur 1 Lehrenden ausgewählt hat), ausgeblendet werden. Ich denke, das müsste mit IF umestzbar sein. Nur fehlt mir da das Wissen für den richtigen Befehl.
Ich hatte an sowas gedacht:

if (trim(value('C002')) == '') {
  *befehl zum ausblenden...;*
} else {
replace('%Lehrende2%', 'C002', 'response');  
}

Oder liege ich ganz falsch?

Danke!

by SoSci Survey (302k points)
> Nur möchte ich, dass die leeren Platzhalter (weil die Person z.B. nur 1 Lehrenden ausgewählt hat), ausgeblendet werden

Haben Sie die Lehrenden denn als Spalten (=eine Person pro kombinierte Frage) oder als Zeilen (=eine Person pro Item)?
by s137973 (240 points)
Die Lehrenden werden als Spalten dargestellt -> eine Frage = eine Person
by SoSci Survey (302k points)
> Die Lehrenden werden als Spalten dargestellt -> eine Frage = eine Person

In dem Fall müssten Sie bitte die Liste der zu kombinierenden Fragen dynamisch erstellen.

Wo und mit welchem Fragetyp fragen Sie denn die Lehrenden bzw. deren Anzahl ab?
by s137973 (240 points)
Auf der Seite zu vor werden drei identische Fragen (Dropdown-Auswahl) mit Liste der Lehrenden angeboten.

A013 -> Lehrender 1
A020 -> Lehrender 2
A021 -> Lehrender 3

Auf der nöchsten Seite kommt PHP Befehl:

replace('%Lehrende1%', 'A013', 'response');  
replace('%Lehrende2%', 'A020', 'response');  
replace('%Lehrende3%', 'A021', 'response');

Dieser wird auf die folgende kombinierte Frage angewandt:

question('C004','combine=C005', 'combine=C006',);
question('C001','combine=C002', 'combine=C003',);

Diese Fragen sind jeweils vom Fragetyp: Texteingabe offen.

1 Answer

0 votes
by SoSci Survey (302k points)
selected by s137973
 
Best answer

Danke für die Details. Sie würden zunächst eine Liste der Lehrenden benötigen. Dafür baue ich eine Liste mit Dropdown-Kennungen und zugehörigen Fragen zum kombinieren. Dann erstelle ich eine Liste, welche Fragen zu kombinieren sind und setze dabei gleich die Platzhalter (verwende aber %A013%, %A021% und %A031%, bitte in Ihren kombinierten Fragen entsprechend ändern).

$lehrende = [
  'A013' => 'C004',
  'A020' => 'C005',
  'A031' => 'C006'
];

$combine = [];
foreach ($lehrende as $drop => $com) {
  if (value($drop) > 0) { 
    replace('%'.$drop.'%', $drop, 'response');
    $combine[] = $com;
  }
}

question($combine);

Und zuletzt verwende ich question(), um die Fragen anzuzeigen.

Klappt das? Sonst verwenden Sie statt question() bitte testweise einmal show().

by s137973 (240 points)
Super! Riesen Dank! Es funktioniert alles sehr schön bereits mit question ()

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

...