Guten Tag,
im Rahmen einer Daily Diary Study prüfen wir wie viele der Daily Fragebogen ausgefüllt wurden. Wenn 80% ausgefüllt wurden, können die Teilnehmenden sich für eine Gutschein anmelden.
Zum testen ob die täglichen Fragebogen ausgefüllt wurden habe ich jeden der täglichen Fragebogen mir einem Code versehen (z.B. $d1_1 == 1 bedeutet der Fragebogen wurde ausgefüllt):
// check d1_1 ausgefüllt
$keyd1_1 = 'd1_1-'.caseSerial();
$d1_1 = '1';
dbSet($keyd1_1, $d1_1);
Später habe ich folgenden Code verwendet, um zu checken ob 80% der Fragebogen ausgefüllt wurden. Falls dies der Fall ist können die Teilnehmenden sich für den Gutschein anmelden (goToPage('Gutschein');). Hier ist der Code:
/////////// GET ALL d1, d2, d3 ////////////
// Initialize counters for completed values
$total_d1 = 0;
$total_d2 = 0;
$total_d3 = 0;
// Get caseSerial only once
$serial = caseSerial();
// Retrieve and check d1 values (d1_1 to d1_10)
for ($i = 1; $i <= 10; $i++) {
$key = 'd1_' . $i . '-' . $serial;
$d1 = dbGet($key); // Retrieve value
if ($d1 !== false && $d1[0] == '1') {
$total_d1++; // Increment count if completed
}
}
// Retrieve and check d2 values (d2_1 to d2_10)
for ($i = 1; $i <= 10; $i++) {
$key = 'd2_' . $i . '-' . $serial;
$d2 = dbGet($key); // Retrieve value
if ($d2 !== false && $d2[0] == '1') {
$total_d2++; // Increment count if completed
}
}
// Retrieve and check d3 values (d3_1 to d3_10)
for ($i = 1; $i <= 10; $i++) {
$key = 'd3_' . $i . '-' . $serial;
$d3 = dbGet($key); // Retrieve value
if ($d3 !== false && $d3[0] == '1') {
$total_d3++; // Increment count if completed
}
}
// Sum of all completed values
$total_completed = $total_d1 + $total_d2 + $total_d3;
// Save the total completed count d1,2,3
$key_count_daily = 'count_daily-' . $serial;
dbSet($key_count_daily, $total_completed);
//////////// CHECK COMPLETION d1, d2, d3 ////////////
// 80% of 30 filled out, so at least 24
if ($total_completed >= 24) {
goToPage('Gutschein'); // d1, d2, d3 completed to 80%
} else {
goToPage('GutscheinFail');
}
Problem: Für alle Fragebogen, die nicht ausgefüllt wurden, ist kein Wert hinterlegt. Entsprechend gibt SoSci Survey ein Hinweis (z.B. "Für den Schlüssel d3_6- liegen in der Datenbank keine Daten vor."). Der Code an sich funktioniert, jedoch könnten diese Hinweise Teilnehmenden verunsichern.
Frage: Wie kann ich diese Hinweise abstellen? Sollte dies nicht gehen, fällt Ihnen eine Alternative zum umstrukturieren des Codes ein, sodass diese Hinweise nicht entsteht?
Beste Grüße