0 votes
in SoSci Survey (dt.) by s219864 (120 points)
edited by SoSci Survey

Hallo,
ich habe einen Fragebogen, bei dem die Teilnehmenden zu bestimmten Themen Stellung beziehen sollen. Zu jedem Thema gibt es drei Fragen. Leider sind es drei Fragen und nicht drei Items, da alle drei Fragen unterschiedliche Skalen haben. Beispiel: "Thema 01: xxx" (Stimme voll zu - stimme gar nicht zu). "Wie wichtig ist die dieses Thema persönlich?" (wichtig ... gar nicht). "zu diesem Thema kann ich gut meine Meinung äußern" (ja --- nein). So grob zumindest:) Dann werden bestimmte Themen ausgewählt und im Labor besprochen. Nach diesem Gespräch sollen die Teilnehmenden noch einmal Fragen zu den Themen beantworten, dieses Mal aber nur zu den auch Besprochenden. Dazu habe ich eine Mehrfachauswahl eingefügt mit allen 30 Themen. Dort wird gefragt, welche Themen besprochen wurden, und je nachdem was angekreuzt wird sollen diese Themen (jeweils mit drei Fragen) abgefragt werden. Ich habe auch schon gesehen, dass man bei der Mehrfachauswahl ohne Code einen Filter einstellen kann, allerdings nur für eine Frage. Das geht also in meinem Fall nicht. Dann habe ich einen Code geschrieben, der aber leider nicht funktioniert. Die Mehrfachauswahl habe ich auf Seite 1. Auf Seite 2 kommt dann der PHP-Code. Ich habe es so verstanden, dass der Filter sich die Fragen dann einfach zieht, ohne dass man diese auf die Seiten nochmals einfügen muss. Nach ein paar Fehlermeldungen habe ich dann keine Meldung mehr gehabt, aber der Coder funktioniert nicht. Nach der Mehrfachauswahl werden wieder alle 30 Themen abgefragt:( Kann mir da jemand helfen? DIe Mehrfachauswahl habe ich QSelect genannt. Ich habe auch versucht, mit deren Kennung "PR01" zu arbeiten, das hat aber auch nicht geklappt. Das hier ist der Code:

$sel = value('QSelect');
if (!is_array($sel)) { $sel = []; }


$map = [
    1  => ['PR02','PR03','PR04'],
    2  => ['PR05','PR06','PR08'],
    3  => ['PR09','PR10','PR11'],
    4  => ['PR12','PR13','PR14'],
    5  => ['PR15','PR16','PR17'],
    6  => ['PR18','PR19','PR20'],
    7  => ['PR21','PR22','PR23'],
    8  => ['PR24','PR25','PR26'],
    9  => ['PR27','PR28','PR29'],
    10 => ['PR30','PR31','PR32'],
    11 => ['PR33','PR34','PR35'],
    12 => ['PR36','PR37','PR38'],
    13 => ['PR39','PR40','PR41'],
    14 => ['PR42','PR43','PR44'],
    15 => ['PR45','PR46','PR47'],
    16 => ['PR48','PR49','PR59'],      
    17 => ['PR50','PR51','PR52'],
    18 => ['PR53','PR54','PR55'],
    19 => ['PR56','PR57','PR58'],
    20 => ['P301','P302','P303'],
    21 => ['P313','P304','P314'],
    22 => ['P305','P306','P307'],
    23 => ['P308','P315','P309'],
    24 => ['P310','P311','P312'],
    25 => ['P316','P317','P318'],
    26 => ['P319','P320','P321'],
    27 => ['P322','P323','P324'],
    28 => ['P325','P326','P327'],
    29 => ['P328','P329','P330'],
    30 => ['P331','P332','P333'],
    31 => ['P334','P335','P336'],
    32 => ['P337','P338','P339'],
    33 => ['P340','P341','P342'],
    34 => ['P343','P344','P345'],
    35 => ['P346','P347','P348'],
];


foreach ($sel as $b) {
    $b = (int)$b;
    if (isset($map[$b])) {
        foreach ($map[$b] as $qid) {
            question($qid);     
        }
    }
}
by SoSci Survey (356k points)
> Dazu habe ich eine Mehrfachauswahl eingefügt mit allen 30 Themen.

Wie heißen denn die Variablen der Mehrfachauswahl?

Möchten Sie die Fragen alle zusammenauf einer Seite zeigen oder jeweils eine Seite pro 3er-Päckchen?
by s219864 (120 points)
Hallo, es hat sich noch ein wenig etwas an den Aussagen verändert, dementsprechend müsste ich den Code allein schon daran anpassen befürchte ich. Es bleibt aber bei 30 Themen, von max. 5 in der Diskussion besprochen werden. Die Fragen der Themen hätte ich gerne zusammen auf einer Seite abgebildet. Die Mehrfachauswahl ist mit PR01 kodiert und geht von PR01_01 bis PR01_30.

1 Answer

0 votes
by SoSci Survey (356k points)

Die Fragen der Themen hätte ich gerne zusammen auf einer Seite abgebildet. Die Mehrfachauswahl ist mit PR01 kodiert und geht von PR01_01 bis PR01_30.

Okay, dann lautet der korrekte Befehl zum Ermitteln aus ausgewählten Optionen:

$options = getItems('PR01', 'is', 2);

Die Zuordnung der Fragen kann bleiben wie sie ist, das Array sieht gut aus:

$map = [
    1  => ['PR02','PR03','PR04'],
    2  => ['PR05','PR06','PR08'],
    ...
];

Und für die Anzeige aller Fragen auf einer Seite brauchen Sie jetzt zwei verschachtelte Schleifen:

foreach ($options as $itemID) {
  foreach ($map[$itemID] as $questionID) {
    show($questionID);
  }
}

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

...