0 votes
in SoSci Survey (dt.) by s336548 (130 points)
edited by s336548

Die put() Variable funktioniert. Ich habe für jeden Fragebogen die answered Variabel angelegt, die dann am Ende des Fragebogens 1 kodiert, wenn der Fragebogen komplett beantwortet wurde.
Nun habe ich in den letzten Fragebogen folgenden Code eingefügt und auch dementsprechend getestet. Leider scheint da etwas nicht zu funktionieren und ich weiß nicht woran es liegt.

$records = panelRecords();
$count = 0;

foreach ($records as $record) {
if (!empty($record['PY02_01'])) $count++;
if (!empty($record['PY03_01'])) $count++;
if (!empty($record['PY04_01'])) $count++;
if (!empty($record['PY05_01'])) $count++;
if (!empty($record['PY06_01'])) $count++;
if (!empty($record['PY07_01'])) $count++;
if (!empty($record['PY08_01'])) $count++;
if (!empty($record['PY09_01'])) $count++;
if (!empty($record['PY10_01'])) $count++;
if (!empty($record['PY11_01'])) $count++;
if (!empty($record['PY12_01'])) $count++;
if (!empty($record['PY13_01'])) $count++;
if (!empty($record['PY14_01'])) $count++;
if (!empty($record['PY15_01'])) $count++;
}

debug('Beantwortete Fragebögen: ' . $count);

// Wenn mindestens 4 Fragebögen beantwortet wurde, dann Item PY01 anzeigen
if ($count >= 4) {
show('PY01');
}

Auch nachdem ich 4 Fragebögen ausgefüllt habe, zeigt mir debug immer 0

related to an answer for: Vergütung Experience Sampling Studie
by SoSci Survey (351k points)
Lassen Sie sich doch bitte mal anzeigen, was panelRecords() liefert:

$records = panelRecords();
debug($records);
by s336548 (130 points)
Das wird angezeigt:

Debug-Information für $records:
[0]    [CASE]700    [STARTED]1753425845
[1]    [CASE]701    [STARTED]1753426043
by SoSci Survey (351k points)
Offenbar kann die Funktion panelRecords() hand der SERIAL nur zwei Fälle (700 und 701) dem Teilnehmer zuordnen. Prüfen Sie das doch bitte einmal unter "Erhobene Daten" -> "Daten ansehen". Im nächsten Schritt müssen Sie dann herausfinden, warum die anderen Fälle *nicht* die passende SERIAL haben.
by s336548 (130 points)
Ich hatte zu dem Zeitpunkt nur zwei Fällte mit der Serial deswegen ist das schon korrekt in diesem Fall.
ago by s336548 (130 points)
Entschuldigen sie mich bitte, wenn ich sie arg störe, aber ich habe leider immer noch keine Rückmeldung erhalten und versuche seitdem das Problem zu lösen aber schaffe es nicht. Mit der funktion panelrecord() können leider nicht die internen Variablen aufgerufen werden, die ich mithilfe der put() funktion auf 1 setze (die put() Funktion funktioniert aber).

1 Answer

0 votes
ago by SoSci Survey (351k points)

Pardon, Ihre Antwort war untergegangen.

Ich hatte zu dem Zeitpunkt nur zwei Fällte mit der Serial deswegen ist das schon korrekt in diesem Fall.

Okay, in Ihrem PHP-Code überprüfen Sie die Variablen PY02_01 bis PY15_01. Diese bringt panelRecords() erstmal nicht mit, nur CASE und STARTED.

Sagen Sie panelRecords() bitte, dass Sie diese Variablen auch haben möchten:

$records = panelRecords(
  ['CASE', 'STARTED', 'PY02_01', 'PY03_01', ...,  'PY15_01']
);
ago by s336548 (130 points)
Ich danke ihnen vielmals!! Der Code funktioniert jetzt!

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

...