0 votes
in SoSci Survey (dt.) by s083756 (530 points)

Guten Abend in die Runde,

ich verzweifel gerade an einer nicht ganz so kompliziert geglaubten Aufgabe:

In der Frage Q005 (Mehrfachauswahl) werden 20 Kategorien abgefragt, wo der Befragte angeben soll, welche er nutzt. Diese Antwortauswahl soll im Fragetext der Folgefrage (Q006) ins Gedächnis gerufen werden. Herausforderung ist nun, dass die Antworten angezeigt werden und die Formatierung gut aussieht. Momentan bin ich bei:

$itemlisteK = array(); // Eine leere Liste erstellen
$anzahl_itemsK = 20; // 20 Items überprüfen
$frageK = 'Q005';

for ($i=1; $i<=$anzahl_itemsK; $i++) { 
    $kennung = $frageK.'_'.sprintf('%02d', $i);
    if (value($kennung) == 2) {
        $itemlisteK[] = $i;    

        $antwortK = value ($itemlisteK,'label');
        replace('%Kategorien%', $itemlisteK);
    }
}

Als Antwort im Platzhalter bekomme ich die Variablennummern mit Komma getrennt. Wie schaffe ich es, dass anstatt der Zahlen, die Antworten stehen als Text?

Zudem kommt Folgende Fehlermeldung:

Für die Funktion value() wurde anstatt einer Frage- oder Item-Kennung
ein Parameter vom Typ array angegeben: ...

Über jegliche Hilfe bin ihc sehr dankbar. Leider sind meine php Kenntnisse sehr eingeschränkt

VG

1 Answer

0 votes
by SoSci Survey (328k points)

Falls Sie die Antworten einfach nur als Liste anzeigen möchten, sehen Sie sich bitte einmal answers() an. Diese Funktion zeigt die Antworten des Teilnehmers auf eine Frage an.

Ein Problem in Ihrem PHP-Code liegt darin, dass Sie den Platzhalter %Kategorien% in jeder Runde neu belegen und damit überschreiben. Die Fehlermeldung kommt daher, dass $itemlisteK ein Array ist (Sie schreiben zu Beginn ja $itemlisteK = array();), keine Kennung, wie sie value() erwarten würde. Um aus einem Eintrag im Array (nicht aus dem kompletten Array!) eine Kennugen zu machen, würden Sie z.B. id($frageK, $itemlisteK[$i]) verwenden. Das entspricht etwa Ihrem Code, mit dem Sie die Variable $kennung erstellen.

Aber anstatt Ihrer Abfrage wäre - falls Sie nicht ohnehin answers() verwenden möchten - die Funktion getItems() ohnehin einfacher. Details gerne auf Nachfrage.

by s083756 (530 points)
super vielen Dank. Die Funktion answers() kannte ich noch nicht. Einfach anzuwenden und reicht in meinem Fall völlig. Merci!

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

...