0 votes
in SoSci Survey (dt.) by s293908 (230 points)
edited by SoSci Survey

Guten Tag,

im Rahmen einer Daily Diary Study bin ich grade dabei individualisierte Serienmails zu programmieren. Teilnehmende wählen hierfür die Zeit aus, zu der Sie den Fragebogen morgens, mittags, abends erhalten wollen. Entsprechend Ihrer Auswahl habe ich die Zeiten mit dbSet() in der Datenbank abgespeichert. Hier ein Beispiel für den Zeitpunkt am Morgen:

PHP Code, Seite 1:

// (d1) SAVE A502 RESPONSE FOR START IN THE MORNING
$keyd1 = 'd1-' . caseSerial(); // Generate a unique key for this response
$d1 = array('1' => '06:00', '2' => '07:00', '3' => '08:00', '4' => '09:00')[value('A502')]; // Generate a unique time key in 24-hour format based on the user's response to A502
dbSet($keyd1, $d1); // Store individual key in database

In dem GLEICHEN Fragebogen eine Seite später, möchte ich mit dbGet() den Zeitpunkt wieder aufrufen, um die individualisierte Fragebögen Versendung zu programmieren mit folgendem code:

PHP Code, Seite 2:

// Retrieve the saved times from the database using the unique keys
$keyd1 = 'd1-' . caseSerial(); // Generate the unique key for the morning start time
$d1 = dbGet($keyd1); // Get the saved morning start time

Auf der gleichen Seite füge ich dann folgenden Code ein zum Mail versand (der Tag "$day01" wurde vorher schon auf der gleichen Seite definiert):

PHP Code, Seite 2:

$diary_011 = 1; // link to Serienmail
$MZP_011 = date("H:i", strtotime($d1)); // Using the retrieved morning start time
$dMZP_011 = date('d.m.Y', strtotime(($day01) . ' day'));
mailSchedule(false, $diary_011, strtotime($dMZP_011 . " " . $MZP_011));

Meine Frage an Sie: Ist es möglich $d1 mit der dbGet() funktion im gleichen Fragebogen abzurufen? Oder wird das nicht klappen, da die Daten mit dbSet() erst bei Beendigung des Fragebogens abgespeichert werden?

Entschuldigen Sie die etwas umständliche Anfrage ich versuche nachzuvollziehen was wann wo gespeichert und abgerufen werden kann.

Beste Grüße

1 Answer

0 votes
by SoSci Survey (327k points)
selected by s293908
 
Best answer

Die Funktion dbSet() ist so gebaut, dass man auf die abgelegten Daten sofort zugreifen kann. Sie können das einfach wie folgt ausprobieren:

...
dbSet($keyd1, $d1);
$data = dbGet($keyd1);
debug($data);

Beachten Sie aber, dass dbGet() immer ein Array liefert. Wenn Sie nur einen Wert speichern brauchen sie ggf. noch ein [0], etwas wie folgt:

$data = dbGet($keyd1);
$d1 = $data[0];
by s293908 (230 points)
Dankeschön, sehr hilfreiche Antwort!

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

...