0 votes
in SoSci Survey (dt.) by s154695 (485 points)

Guten Abend,

in meinem Fragebogen sollen die Teilnehmenden bei einer offenen Nennung die Namen von drei Kolleg:innen angeben.
Von diesen drei Antworten soll eine dann im weiteren Verlauf des Fragebogens randomisiert als Platzhalter eingefügt werden. Wie ich den Platzhalter grundsätzliche setze weiß ich, allerdings habe ich noch keinen Ansatz gefunden, wie ich das mit der Randomisierung in diesem Fall umsetzen kann.

Können Sie mir hier weiterhelfen?

Vielen Dank im Voraus und viele Grüße!

by SoSci Survey (327k points)
Nach welcher Regel möchten Sie denn randomisieren? Einfach die drei Namen mischen und auf drei Zufallsgeneratoren verteilen?

Das erreichen Sie relative einfach mittels valueList() und shuffle().
by s154695 (485 points)
Genau, einfach die drei Namen mischen und zufällig einen davon ziehen.

Wenn ich versuche, einen PHP-Code mit shuffle() zu erstellen, kommt folgender Warnhinweis:

Warnung: Im PHP-Code wurde die Variablen-Funktion $shuffle() verwendet. Das ist nicht erlaubt.

Warnung: Der PHP-Code enthält Funktionen oder PHP-Elemente, die nicht für die Verwendung im Fragebogen freigegeben wurden. Falls Sie der Meinung sind, dass die monierten Konstrukte ungefährlich sind, setzen Sie sich bitte mit dem Administrator in Kontakt!


Gibt es eine Alternative? Oder mache ich etwas falsch?
by SoSci Survey (327k points)
Sie haben ein Dollar-Zeichen vor die Funktion shuffle() geschrieben. Dollars sind für Variablen, Funktionen werden ohne geschrieben.

Posten Sie gerne mal Ihren PHP-Code, dann kann ich konstruktive Tipps geben.
by s154695 (485 points)
Tatsache.
Sonderlich weit bin ich noch nicht:

     $values = valueList('FS01', 'free');
     shuffle ($values);

Wenn ich es richtig verstanden habe, rufe ich so für alle Items der Frage FS01 (in der die Namen der Kolleg:innen genannt werden) die freien Antworten ab und mische diese. Ist das richtig? Wenn ja: wie kann ich jetzt etwas aus dieser Liste ziehen?

1 Answer

+1 vote
by SoSci Survey (327k points)
selected by s154695
 
Best answer

wie kann ich jetzt etwas aus dieser Liste ziehen?

$values = valueList('FS01');
shuffle ($values);

Wenn Sie möchten, können Sie erstmal prüfen, ob die Liste passt:

debug($values);

Und wenn alles passt, können Sie das einfach in Platzhalter schreiben:

replace('%name1%', $values[0]);
replace('%name2%', $values[1]);
replace('%name3%', $values[2]);

Diese Platzhalter können Sie dann an beliebiger Stelle im weiteren Fragebogen verwenden.

by s154695 (485 points)
Das war der Fehler - sie waren nicht im selben PHP-Code, nur auf der selben Seite. Vielen Dank!
Der Platzhalter erschient nun richtig in den entsprechenden Fragen. Allerdings taucht trotzdem folgende Fehlermeldung auf:

Variable $values[0] is unknown to this project (see listing of variables). Therefore no result can be retrieved.

Wie lässt diese sich lösen?
by SoSci Survey (327k points)
Das klingt danach, dass Sie irgendwo so etwas wie

value('$values[0]') geschrieben haben?! Wenn Sie nochmal Ihren kompletten PHP-Code posten möchten, kann ich mich gerne genauer dazu äußern.
by s154695 (485 points)
Vielen Dank! Genau, der Ausdruck kommt in der Vorbereitung des Platzhalters für folgende Wellen vor:

$values = valueList('FS01');
debug($values);
shuffle ($values);
debug($values);

//Replace name for this questionnaire
replace('%name%', $values[0]);
debug($values);

//preparation colleague name following waves
$key = value('C101_01');
$data = array(
  value('$values[0]')
);
dbSet($key, $data);
by SoSci Survey (327k points)
Alles klar ... ersetzen Sie das bitte wie folgt:

//preparation colleague name following waves
$key = value('C101_01');
dbSet($key, $values);

Oder wenn Sie wirklich nur den ersten Namen brauchen, dann...

//preparation colleague name following waves
$key = value('C101_01');
dbSet($key, $values[0]);

Was Sie gemacht hatten war, dass Sie mit der Funktion value() den Wert einer Variablen im Datensatz mit dem Namen '$values[0]' abrufen wollten. Mehr zu unterschiedlichen Variablen s. https://www.soscisurvey.de/help/doku.php/de:create:variables
by s154695 (485 points)
Perfekt, vielen Dank für die Unterstützung :-)
Jetzt funktioniert es.

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

...