0 votes
in SoSci Survey (dt.) by s063317 (135 points)
edited by SoSci Survey

In meinem Fragebogen werden zu insgesamt 150 Wortpaaren 2 Fragen gestellt. Auf jeder Seite wird eines der Paare zufällig gezeigt. Dazu habe ich zwei Fragen angelegt und jeweils 99 items mit entweder %text% (Frage 1) oder %text2% (Frage 2) angelegt. (Wird später ersetzt durch die Fragen). Nun aber das Problem: Es gibt eine Begrenzung von 99 Items pro Frage. Hat jemand eine Möglichkeit, wie ich diesen Code in der Basis beibehalten kann, aber anstatt nur einem Wortpaar pro Seite gleich 10 präsentieren kann? Hier noch meinen verwendeten Code:

$wortpaare = array(
  1 => "\"Mütze - Kopf\"",
  2 => "\"Kleid - Hose\"",
  3 => "\"Stern - Galaxie\"",
...
150 = "\"Mond - Erde\"");

$frage1 =  "Wie gut passen diese Wörter zusammen?";

$frage2 =  "wie stark löst dieses Wortpaar in Ihnen negative oder positive Gefühle aus?";

if (!isset($order)) {
  $order = array_keys($wortpaare);
  shuffle($order);
  registerVariable($order);
}


$i = loopPage(count($wortpaare));
$id = $order[$i];

replace('%text%', $frage1); 
replace('%text2%', $frage2); 

html('<p><b>'.$wortpaare[$id].'</p><br><br></b>');

$fragen = array('VA01','VO01');

foreach ($fragen as $frage) {
  question($frage, array($id));
}

1 Answer

0 votes
by SoSci Survey (304k points)

Sie möchten Ihren Teilnehmern wirklich 150 Wortpaare mal 2 Fragen = 300 Einzelnbewertungen antun? Ich bin nicht sicher, ob das ethisch noch vertretbar ist. Aus methodischer und menschlicher Sicht würde ich dazu raten, über einen Half-Split des Desings nachzudenken (zufällt 75 Items pro Teilnehmer).

Eine zweite Überlegung: Sie bekommen bei dieser Variante 300 Variablen. Vermutlich ist das nicht die Datenstruktur, die Sie am Ende brauchen... Sehen Sie sich als Gedankenspiel bitte einmal folgende Anleitung an: Multi-Level Struktur.

Wenn Sie dann aber von vornherein eine saubere Datenstruktur haben möchten, müssten Sie tatsächlich ein Paar pro Seite anzeigen. Was dabei am meisten Zeit kostet? Der Klick auf das "Weiter". Dort würde ich ansetzen: Je nach Fragetyp können Sie mir einem Klick (Auswahlfrage) oder mit ein paar Zeilen JavaScript dafür sorgen, dass der Teilnehmer nach der Antwort auf Frage 2 direkt zur nächsten Seite bzw. zum nächsten Wortpaar kommt.

Falls Sie doch lieber bei einer Single-Level-Struktur bleiben, müssten Sie Ihre Items auf 2 Fragen aufteilen (z.B. 90+60 Items). Und statt dem foreach() hätten Sie einfach einen zusätzliche Filter:

if ($id > 90) {
  question('VA02', array($id - 90));
  question('VO02', array($id - 90));
} else {
  question('VA01', array($id));
  question('VO01', array($id));
}

Ach ja ... die 10 Items pro Seite würden Sie mit einem array_chunk() hinbekommen. Dann würden Sie loopPage() nicht mehr über die einzelnen Items laufen lassen, sondern über die 10er-Blöcke.

by s063317 (135 points)
Vielen Dank für die Ausführungen. Ja, es ist wirklich viel Aufwand, wir überlegen uns, ein Split design zu machen. Trotzdem würden wir gerne 10 Items pro Seite haben. Daher meine Frage:



$wortpaare = array(
  1 => "\"Mütze - Kopf\"",
  2 => "\"Kleid - Hose\"",
  3 => "\"Stern - Galaxie\"",
...
150 = "\"Mond - Erde\"");

$frage1 =  "Wie gut passen diese Wörter zusammen?";

$frage2 =  "wie stark löst dieses Wortpaar in Ihnen negative oder positive Gefühle aus?";

if (!isset($order)) {
  $order = array_keys($wortpaare);
  shuffle($order);
  registerVariable($order);
}

$chunck = array_chunk($wortpaare,10);

$i = loopPage(count($chunk));
$id = $order[$i];

replace('%text%', $frage1);
replace('%text2%', $frage2);

html('<p><b>'.$wortpaare[$id].'</p><br><br></b>');

$fragen = array('VA01','PA01');

if ($id > 90) {
  question('VA01', array($id - 90));
  question('PA01', array($id - 90));
} else {
  question('VA01', array($id));
  question('PA01', array($id));
}



leider funktioniert der Code so nicht. Ich vermute es liegt daran, dass die Anzahl innerhalb der Chunks halt immer noch 150 ist. Wie aber kann verstanden werden, dass ich die einzelnen chunks als Anzahl nehmen möchte`?

Freundliche Grüsse und vielen Dank!
by SoSci Survey (304k points)
> $frage1 =  "Wie gut passen diese Wörter zusammen?";
> $frage2 =  "wie stark löst dieses Wortpaar in Ihnen negative oder positive Gefühle aus?";

Möchten Sie die Fragetexte nicht einfach fest als Fragetexte oder Vorspann in die beiden Fragen schreiben? Wenn Sie die Items dann leer lassen (Leerzeichen) und (wenn es um Skalenfragen geht) die "Einzeln" Darstellung wählen, könnte das einfacher sein als die Platzhalter.

> leider funktioniert der Code so nicht.

Das liegt daran, weil Sie $oder mischen, aber $wortpaare in Chunks aufteilen. Was Sie vermutlich möchten ist:

$chunks = array_chunk($order,10);
$i = loopPage(count($chunks));
$chunk = $chunks[$i];

foreach ($chunk as $id) {
   html('<p><b>'.$wortpaare[$id].'</p><br><br></b>');
  // u.s.w.
}
by s063317 (135 points)
Vielen Dank!

Was mir als letztes noch unklar ist: mein Spacing Code funktioniert nicht.

if ($id > 99) {
  question('VA01', array($id - 99),'spacing=10');
  question('PA01', array($id - 99));
} else {
  question('VA02', array($id));
  question('PA02', array($id));
}


In meinem ursprünglichen Code
 foreach ($fragen as $frage) {
  question($frage, array($id),'spacing=10');
}
hat das problemlos geklappt
by s063317 (135 points)
funktioniert doch, sorry!

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

...