0 votes
ago in SoSci Survey (dt.) by s361067 (110 points)

Liebes Support-Team,

zunächst eine generelle Frage: Ich verwende Sosci Survey über einen uniinternen Server. Ich habe keinen Weg gefunden, mich mit meinem dort registrierten Nutzernamen + Passwort anzumelden, um auch den Online-Support nutzen zu können - deswegen jetzt (schon wieder) ein Zweitaccount. Sollte der Support mit externem-Server-Account theoretisch nutzbar sein?

Und hier mein Problem: Für ein Projekt mit zwei Interventionsarmen und fünf Messzeitpunkten habe ich viele verschiedene Fragebögen angelegt. Im ersten Fragebogen wird das Geschlecht erfasst und es erfolgt eine Randomisierung zur Interventions- oder Kontrollgruppe. Das Geschlecht benötige ich in den nachfolgenden Fragebögen zum Vorlegen geschlechtsspezifischer Fragebögen. Die Zuteilung und das Geschlecht werden in der Datenbank für Inhalte abgespeichert.
Während in den nachfolgenden Fragebögen der Zugriff auf die gespeicherte Zuteilung und die entsprechende Zuweisung zu IG/KG korrekt funktioniert, erhalte ich bei dem Zugriff auf das Geschlecht eine Fehlermeldung: "Trying to access array offset on value of type bool"

Der PHP-Code zur Speicherung der Geschlechtsangabe im ersten Fragebogen lautet:

$data = array(
  value('SD01', 'label'),
  value('SD02_01')           //diese Variable ist für Frage unwichtig
);
$key = 'SX-'.reference();  
dbSet($key, $data);

Und in den nachfolgenden Fragebögen:

$key = 'SX-'.reference();
$data = dbGet($key);

if ($data[0] == 'weiblich') {  
  setNextPage('Fragebogen_w');
} elseif ($data[0] == 'männlich') { 
  setNextPage('Fragebogen_m');
} elseif ($data[0] == 'divers') { 
  setNextPage('Fragebogen_d');
} 

In der Datenbank sind die Referenz, Geschlecht (in Spalte 0) und Randomisierung korrekt gespeichert.
Über jeden Lösungsvorschlag bin ich dankbar!
LG

1 Answer

0 votes
ago by SoSci Survey (366k points)

Sollte der Support mit externem-Server-Account theoretisch nutzbar sein?

Nein, der Account auf dem Uni-Server gilt nur für selbigen. Wir denken darüber nach, für Hochschulen, die SoSci Survey entgeltlich einsetzen, einen direkten Login zu ermöglichen. Allerdings war die Nachfrage danach bisher sehr gering.

Während in den nachfolgenden Fragebögen der Zugriff auf die gespeicherte Zuteilung und die entsprechende Zuweisung zu IG/KG korrekt funktioniert, erhalte ich bei dem Zugriff auf das Geschlecht eine Fehlermeldung: "Trying to access array offset on value of type bool"

Diese Fehlermeldung kommt daher, weil dbGet() den Eintrag (noch) nicht findet, und daher false liefert. Das ist der "type bool" Wert, bei dem Sie nicht auf Array-Elemente zugreifen können.

Während in den nachfolgenden Fragebögen der Zugriff auf die gespeicherte Zuteilung und die entsprechende Zuweisung zu IG/KG korrekt funktioniert

An welcher Stelle funktioniert es denn nicht? Ich lese Ihre Frage so, dass ich oben nur den funkionierenden Code sehe?

Wie stellen Sie denn sicher, dass die Personen über alle 5 Wellen hinweg den richtigen Link mit der individuellen Referenz (r=) bekommen?

ago by s361067 (110 points)
Der PHP-Code, den ich oben angegeben habe, funktioniert nicht. Das Speichern in der Datenbank für Inhalte scheint aber zu funktionieren, deswegen weiß ich nicht, wo der Fehler liegt. Den Code für die Speicherung der Randomisierung habe ich nicht gepostet, weil er funktioniert. Hier ist er:

Im ersten Fragebogen:

$key = 'RD-'.reference();
$rd_w = value('R001', 'label');
$rd_m = value('R002', 'label');
$rd_d = value('R003', 'label');

$rand = array(
    'R001' => $rd_w,
    'R002' => $rd_m,
    'R003' => $rd_d
);

dbSet($key, $rand);

In den nachfolgenden Fragebögen (hier Beispiel für den Zuteilungsfragebogen zum 2. Messzeitpunkt):

$key = 'RD-'.reference();
$rand = dbGet($key);
$rd_w = $rand[0];
$rd_m = $rand[1];
$rd_d = $rand[2];

if (
  ($rd_w == 'IG1') ||
  ($rd_m == 'IG1') ||
  ($rd_d == 'IG1')
){
  multiLevelDown('IG2');
}
elseif (
  ($rd_w == 'KG1') ||
  ($rd_m == 'KG1') ||
  ($rd_d == 'KG1')
){
  multiLevelDown('KG2');
}
ago by s361067 (110 points)
Wie stellen Sie denn sicher, dass die Personen über alle 5 Wellen hinweg den richtigen Link mit der individuellen Referenz (r=) bekommen? --> Wir arbeiten mit einem externen Panel-Anbieter zusammen, dieser verschickt die 5 Einladungen.
ago by SoSci Survey (366k points)
Okay, ich gehe davon aus, dass Sie beim Testen auch eine Referenz einstellen, indem Sie ein geeignetes r= im Link ergänzen.

> Das Speichern in der Datenbank für Inhalte scheint aber zu funktionieren

Das ist schonmal gut. Dann prüfen Sie bitte als nächstes ob der Abruf funktioniert. Versuchen Sie im ersten Fragebogen, wo Sie die Daten benötigen, einmal folgendes:

$key = 'RD-'.reference();
$rand = dbGet($key);
html($key);
html($rand);

Was wird hier beim Aufruf (mit der passenden Referenz im Link) anzeigt?
ago by s361067 (110 points)
"Der Befehl html() erwartet als Argument einen String (Text). Strings müssen stets von Anführungszeichen umschlossen sein."

Ich vermute, das Problem könnte darin liegen, dass der Panelanbieter mit statischen Links arbeiten möchte...? Gibt es dafür eine Lösung, oder sollte ich besser dynamische Links (mit r=) anfordern?

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

...