0 votes
in SoSci Survey (dt.) by s106113 (205 points)

Hallo,

wir würden Personen gerne ein Feedback zu Ihren Daten im Rahmen einer Längsschnittstudie geben. Dazu füllen Sie in der Vorbefragung (unter anderem) eine Skala zum Konstrukt "OG" mit 12 Items aus. Den Mittelwert dieser Skala wollen wir in einem späteren Fragebogen nutzen, um eine Rückmeldung zu geben; sprich: Mittelwert in der Vorbefragung in die Datenbank für Inhalte ablegen und zum späteren Zeitpunkt wieder abrufen, um ihn dort weiter zu verwenden. Die sonstige Programmierung klappt soweit sehr gut. Jedoch funktioniert das Zusammenspiel von dbSet() und dbGet() nicht wie erhofft. Sämtliche Anleitungen zu "Datenbank für Inhalte", "dbSet" und "dbGet" haben wir schon durchgearbeitet, leider ohne Erfolg.

Programmierung in der Vorbefragung:
- Zuerst eine Seite, auf der die Item-Batterie (Skala OG01) dargestellt wird
- Darauffolgend eine eine PHP-Seite mit folgendem Code:

$meanOG01VB = valueMean('OG01');
$KeyOG01VB = 'OG01VB-'.caseSerial();
dbSet($KeyOG01VB, $meanOG01VB);

So sollte unter dem Key "OG01VB-" eigentlich der Mittelwert für OG01 abgelegt werden. Auch haben wir schon probiert, statt valueMean('OG01') die Version mit allen Items in Klammern dahinter (also: valueMean(['OG_SE_01', 'OG_SE_02', 'OG_SE_03', 'OG_SI_01', 'OG_SI_02', 'OG_SI_03', 'OG_GP_01', 'OG_GP_02', 'OG_GP_03', 'OG_GV_01', 'OG_GV_02', 'OG_GV_03']) ) zu verwenden, da wir die Variablen-Namen angepasst hatten.

PHP-Programmierung im späteren Fragebogen (Feedback):

$KeyOG01VB = 'OG01VB-'.caseSerial();
$meanOG01VB = dbGet($KeyOG01VB);

/*Hier zum einfachen Testen eine Ausgabe des Wertes für OG01*/
html('
  <p>Der Mean von OG01 ist:'.sprintf('%1.1f', $meanOG01VB).'</p>
');

Leider erhalten wir hier immer nur folgendes Ergebnis: "Der Mean von OG01 ist: 1.0". Die Daten aus der Vorbefragung werden für dei einzelnen Variablen korrekt abgespeichert (z.B. wenn man für alle 12 Items den Wert 3 angibt, wird dies unter "Daten ansehen" auch so angezeigt).

Könnten Sie uns hier weiterhelfen? Vielleicht haben wir gerade einfach ein Brett vor dem Kopf. Vielen Dank!

1 Answer

+1 vote
by SoSci Survey (323k points)
selected by s106113
 
Best answer

Die Funktion dbGet() liefert immer ein Array zurück. Bitte versuchen Sie es einmal mit [0] nach der Variable:

$meanOG01VB = dbGet($KeyOG01VB);

...sprintf('%1.1f', $meanOG01VB[0])...

Ich fand auf die Schnelle keine Spezifikation, ob ein Array bei der Umwandlung in eine Zahl immer als 1 behandelt wird oder ob die Anzahl der Array-Elemente verwendet wird.

by s106113 (205 points)
Perfekt, genau das war es scheinbar! Ich dachte mir fast, dass es etwas mit der Ausgabe als Array zu tun hat, konnte es aber nicht beheben. Vielen herzlichen Dank. Ggf. könnte man diese Anmerkung in den Anleitungen zur Datenbank für Inhalte im Punkt "Daten zwischen Interviews austauschen" ergänzen.
by s106113 (205 points)
Folgendes war scheinbar noch wichtig in der Umsetzung, dies ist die finale Lösung:

**Programmierung in der Vorbefragung:**
- Seite, auf der die Item-Batterie (Skala OG01) dargestellt wird
- PHP-Code auf folgender Seite, man beachte das ... **array(valueMean(** ... :

    $meanOG01VB = array(valueMean('OG01'));
    $KeyOG01VB = 'OG01VB-'.caseSerial();
    dbSet($KeyOG01VB, $meanOG01VB);

**PHP-Programmierung im späteren Fragebogen (Feedback):**
 Daten für das Konstrukt aus der Datenbank für Inhalte abrufen durch dbGet():

    $KeyOG01VB = 'OG01VB-'.caseSerial();
    $meanOG01VB = dbGet($KeyOG01VB);
Einfacher Test durch Ausgabe in HTML auf gleicher Seite (hier ist genannte [0] wichtig):

    html('
      <p>mean OG01 '.sprintf('%1.1f', $meanOG01VB[0]).'</p>
    ');
"Übergabe" an HTML um Wert (dann OG01Z1) für HTML-Programmierung (z.B. Grafikerstellung via Jaca Script mit chart.js) weiterzuverwenden (hier ist ebenfalls die [0] wichtig:

    html('
    <script>
    let OG01Z1 = '.sprintf('%1.1f', $meanOG01VB[0]).';
    </script>
    ');

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

...