Hallo,
wir haben momentan ein Problem mit einem unserer PHP-Filter im Fragebogen.
Und zwar möchten wir in einem Pre-Screening alle Teilnehmenden, die weniger als 3 negative Lebensereignisse hatten rausfiltern. Daher zählen wir alle Antworten auf Fragen zu Lebensereignissen, die mit 3 (=negativ) beantwortet wurden.
Hier der PHP-Code, den wir hierfür nutzen:
$life_event = array(
'LI28_01' => 3,
'LI28_02' => 3,
'LI28_03' => 3,
'LI29_01' => 3,
'LI29_02' => 3,
'LI29_03' => 3,
'LI30_01' => 3,
'LI30_02' => 3,
'LI30_03' => 3,
'LI31_01' => 3,
'LI31_02' => 3,
'LI31_03' => 3,
'LI32_01' => 3,
'LI32_02' => 3,
'LI32_03' => 3,
'LI33_01' => 3,
'LI33_02' => 3,
'LI33_03' => 3,
'LI34_01' => 3,
'LI34_02' => 3,
'LI34_03' => 3,
'LI35_01' => 3,
'LI35_02' => 3,
'LI35_03' => 3,
'LI36_01' => 3,
'LI36_02' => 3,
'LI36_03' => 3,
'LI37_01' => 3,
'LI37_02' => 3,
'LI37_03' => 3,
'LI38_01' => 3,
'LI38_02' => 3,
'LI38_03' => 3,
'LI39_01' => 3,
'LI39_02' => 3,
'LI39_03' => 3,
'LI40_01' => 3,
'LI40_02' => 3,
'LI40_03' => 3,
'LI41_01' => 3,
'LI41_02' => 3,
'LI41_03' => 3,
'LI42_01' => 3,
'LI42_02' => 3,
'LI42_03' => 3,
'LI43_01' => 3,
'LI43_02' => 3,
'LI43_03' => 3,
'LI44_01' => 3,
'LI44_02' => 3,
'LI44_03' => 3,
'LI45_01' => 3,
'LI45_02' => 3,
'LI45_03' => 3,
'LI46_01' => 3,
'LI46_02' => 3,
'LI46_03' => 3,
'LI47_01' => 3,
'LI47_02' => 3,
'LI47_03' => 3,
'LI48_01' => 3,
'LI48_02' => 3,
'LI48_03' => 3,
'LI49_01' => 3,
'LI49_02' => 3,
'LI49_03' => 3,
'LI50_01' => 3,
'LI50_02' => 3,
'LI50_03' => 3,
'LI51_01' => 3,
'LI51_02' => 3,
'LI51_03' => 3,
'LI52_01' => 3,
'LI52_02' => 3,
'LI52_03' => 3,
'LI53_01' => 3,
'LI53_02' => 3,
'LI53_03' => 3,
'LI54_01' => 3,
'LI54_02' => 3,
'LI54_03' => 3,
);
// Initialising counter variable
$counter_le = 0;
// Check all the items in a loop
foreach ($life_event as $variable=>$correct) {
// get participant's answer
$answer = value($variable);
// check if it is 3
if ($answer == $correct) {
$counter_le++;
}
}
Anschließend steuern wir dann mit folgendem Filter, auf welche Seite die Teilnehmenden als nächstes geschickt werden. Außer der Summe an negativen Lebensereignissen befinden sich noch andere Kriterien im Filter, welche keine Probleme bereiten. Nur Teilnehmende mit mindestens drei negativen Lebensereignissen (und anderen Kriterien) schaffen es auf die nächste Seite; ansonsten werden sie auf eine Seite gelenkt, die ihnen mitteilt, dass sie nicht für die Studie geeignet sind.
if(getLanguage() == 'heb'
&& value('AB02_01') > 17
&& value('AB02_01') < 28
&& value('SD14') == 3
or value('SD14') == 2
&& value('XX09') == 1
&& value('XX10') < 3
&& $sum_ghq > 37
&& $counter_le > 2) {
goToPage('MRIpsych');
}
elseif((getLanguage() == 'ger'
||getLanguage() == 'dut'
||getLanguage() == 'pol'
||getLanguage() == 'eng')
&& value('AB02_01') > 17
&& value('AB02_01') < 26
&& value('SD14') == 3
or value('SD14') == 2
&& value('XX09') == 1
&& value('XX10') < 3
&& $sum_ghq > 37
&& $counter_le > 2) {
goToPage('MRIpsych');
}
else {
goToPage('NotEligible');
}
Aus irgendeinem Grund werden allerdings auch Teilnehmende auf die nächste Fragebogenseite geleitet, die weniger als drei negative Lebensereignisse hatten und somit im Filter eigentlich hätten ausgeschlossen werden müssen.
Haben Sie eine Idee, woran das liegen könnte? Ist irgendwas in dem Filter oder der Berechnung der Anzahl negativer Lebensereignisse falsch programmiert?
Vielen herzlichen Dank!