0 votes
in SoSci Survey (dt.) by s288744 (140 points)
edited by SoSci Survey

Hi, ich habe in einem Fragebogen auf Seite 2 eine Frage (LA01), in der die Teilnehmer aus einer Liste von 43 Länder (Kennung LA01_01-LA01_43) 8 Länder auswählen sollen. Aus diesen 8 ausgewählten Ländern sollen in der nächsten Frage, welche sich auf Seite 3 befindet, Kombinationen als Items erstellt werden. Dafür habe ich eine Multi-Level-Struktur angelegt, die auf den Sub-questionaire (sub01) verweist. Auf Seite 3 habe ich dazu den folgenden PHP-Code angelegt, der auf den sub01 verweisen soll und dort die Kombinationen (Items) zu der dort hinterlegten Frage (MS01) anzeigen soll. Dieser lautet wie folgt:

$items = getItems('LA01', '==', 2);
debug($items);

$selectedArray = $items; 

$combinations = [];
for ($i = 0; $i < count($selectedArray); $i++) {
    for ($j = $i + 1; $j < count($selectedArray); $j++) {
        $combinations[] = [$selectedArray[$i], $selectedArray[$j]];
    }
}
debug($combinations);

$currentCombination = loopPage($combinations);


multiLevelDown('sub01', $currentCombination);

Der PHP-Code des Sub-questionaires, der die Frage beinhaltet lautet wie folgt:

$currentCombination = multiLevelData();

// Debug: Ausgabe des Werts von $currentCombination
debug($currentCombination);

list($item1, $item2) = $currentCombination;

// Debug: Ausgabe der Items
debug($item1);
debug($item2);

// Verwenden der Variablen in der Fragefunktion
question('MS01', 'show-items=' . $item1 . ' und ' . $item2);

multiLevelReturn(true);

Anschließend soll die Befragung im main-questionaire weitergehen.

Mein Problem ist, dass mir nach Auswahl der 8 Länder nichts mehr angeziegt wird. Also weder die Frage, noch die Kombination aus den gewählten Items, noch eine Fehlermeldung in der Debug-Funktion. Die Seite ist einfach komplett leer. Könnte das daran liegen, dass in der Fragte MS01 keine Items definiert wurden? Falls ja, wie kann ich dieses Problem umgehen, weil die Items sollen ja erst aus der Auswahl und der Kombination erstellt werden?

Ich würde mich über eure Hilfe sehr freuen. Besten Dank!

1 Answer

0 votes
by SoSci Survey (321k points)

Diese Zeile ist noch nicht ganz korrekt:

// Verwenden der Variablen in der Fragefunktion
question('MS01', 'show-items=' . $item1 . ' und ' . $item2);

Versuchen Sie es mit

question('MS01', [$item1, $item2]);

Abgesehen davon ...

Mein Problem ist, dass mir nach Auswahl der 8 Länder nichts mehr angeziegt wird.

Posten Sie bitte die vollständige Debug-Information, die auf der Seite angezeigt wird, auf der keine Inhalte gezeigt werden.

by s288744 (140 points)
Danke für die Antwort!

Den ersten Hinweis habe ich umgesetzt.

Ich kann Ihnen aber keine Debug-Information posten, weil es sich um eine komplett leere Seite handelt. Also auch die anderen SoSci Survey Features inkl. der Debug-Modus sind nicht mehr zu sehen ...
by SoSci Survey (321k points)
Das spricht dafür, dass im Hintergrund etwas abstürzt. Könnten Sie einen Pretest-Link zu der Seite oder zur Seite davor erstellen und posten?
by s288744 (140 points)
Hi, ich habe nun nochmal etwas an dem Code rum gebastelt und bin nun soweit, dass mir eine Ausgabe der Kombinationen in einer Liste angezeigt wird.

$items = getItems('LA01', '==', 2);


$selectedArray = $items;
$combinations = [];
$question = 'LA01_';
for ($i = 0; $i < count($selectedArray); $i++) {
    for ($j = $i + 1; $j < count($selectedArray); $j++) {

    $question_id = $selectedArray[$i];
    $name = $question . $question_id;

    $question_id_compare = $selectedArray[$j];
    $name_compare = $question . $question_id_compare;
 
  
               $combinations[] = [  getItemtext($name),getItemtext($name_compare)];

    }
}

$titel = getItemtext('LA01_5');

html('<ul>');
for($i = 0; $i < count($combinations); ++$i) {
    html('<li>' . $combinations[$i][0] . ' - ' . $combinations[$i][1] . '</li>') ;
}
html('</ul>');

Sobald ich nun aber diesen Teil ergänze:

multiLevelDown('sub01', 'combinations');

springt der Fragebogen sofort auf Seite 4 des Main-Questionaires und der Sub01 wird übersprungen

Hier nochmal der Code des sub-questionaires:

$combinations = multiLevelData();

debug($combinations);

list($item1, $item2) = $combinations;

debug($item1);
debug($item2);

question('MS01', [$item1, $item2]);

multiLevelReturn(true);


Über Ihre Hilfe wäre ich wirklich extrem dankbar :)
by SoSci Survey (321k points)
> multiLevelDown('sub01', 'combinations');
>
> springt der Fragebogen sofort auf Seite 4 des Main-Questionaires und der Sub01 wird übersprungen

Also, es müsste $combinations statt 'combinations' heißen, weil Sie sonst einfach nur den Text "combinations" an Sub1 übergeben, und list($item1, $item2) dann einen Fehler erzeugt. Ich muss aber mal testen, weshalb der Fehler nicht angezeigt wird.

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

...