Hallo,
ich versuche gerade den Quoten-Stopp und das Screen-Out bzw. die Verknüpfung der Redirects in dem Fragebogen zu überprüfen.
Wenn ich mich über den grünen Playbutton in "Fragebogen zusammensetzen" durch die Fragen klicke werde ich automatisch an den Panelservice geleitet, obwohl die Quoten ja noch nicht voll sein sollten, weil der Fragebogen noch gar nicht öffentlich ist.
Kann es sein, dass das immer passiert, weil der Fragebogen noch nicht freigeschalten ist, oder liegt das Problem in meinen PHP-Codes? Ich habe mich bei diesen an der Vorlage aus dem Handbuch orientiert. (Eine Frage dennoch zu den Codes: Kann ich beim Alter z.B. "18 - 34" eingeben? Oder muss hier immer mit </>/= gearbeitet werden?)
Die PHP-Codes habe ich so auf die darauffolgende Seite gegeben:
$quotaAge = [
1 => 247,
2 => 232,
3 => 521
];
$quotaGender = [
1 => 509,
2 => 491
];
$quotaEducation = [
1 => 697,
2 => 137,
3 => 166
];
$quotaResidence = [
1 => 200,
2 => 800,
];
// Geschlecht wird direkt ausgelesen
$gender = value('SD01');
//Bildung
$education = value ('SD10');
if ($education = 10) {
$educationGroup = 1;
} elseif ($education = 1) {
$educationGroup = 1;
} elseif ($education = 2) {
$educationGroup = 1;
} elseif ($education = 3) {
$educationGroup = 1;
} elseif ($education = 4) {
$educationGroup = 2;
} elseif ($education = 5) {
$educationGroup = 2;
} elseif ($education = 6) {
$educationGroup = 2;
} elseif ($education = 7) {
$educationGroup = 3;
} elseif ($education = 8) {
$educationGroup = 3;
} elseif ($education = 9) {
$educationGroup = 3;
}
// Das Alter wird umkodiert
$age = value('SD02');
if ($age = 18 - 34) {
$ageGroup = 1;
} elseif ($age = 35 -49) {
$ageGroup = 2;
} elseif ($age >= 50) {
$ageGroup = 3;
}
// Ost/West
$residence = value('SD19');
if ($residence = 1) {
$residenceGroup = 2;
} elseif ($residence = 2) {
$residenceGroup = 2;
} elseif ($residence = 3) {
$residenceGroup = 1;
} elseif ($residence = 4) {
$residenceGroup = 1;
} elseif ($residence = 5) {
$residenceGroup = 2;
} elseif ($residence = 6) {
$residenceGroup = 2;
} elseif ($residence = 7) {
$residenceGroup = 2;
} elseif ($residence = 8) {
$residenceGroup = 1;
} elseif ($residence = 9) {
$residenceGroup = 2;
} elseif ($residence = 10) {
$residenceGroup = 2;
} elseif ($residence = 11) {
$residenceGroup = 2;
} elseif ($residence = 12) {
$residenceGroup = 2;
} elseif ($residence = 13) {
$residenceGroup = 1;
} elseif ($residence = 14) {
$residenceGroup = 1;
} elseif ($residence = 15) {
$residenceGroup = 2;
} elseif ($residence = 16) {
$residenceGroup = 1;
}
// Abruf der vorliegenden Fälle für diese Merkmalsausprägung
$casesAge = statistic('count', 'SD22_01', $ageGroup);
$casesGender = statistic('count', 'SD23_01', $gender);
$casesEducation = statistic('count', 'SD24_01', $educationGroup);
$casesResidence = statistic('count', 'SD25_01', $ResidenceGroup);
// Screenout
if (!array_key_exists($ageGroup, $quotaAge) || !array_key_exists($educationGroup, $quotaEducation)) {
redirect('https://www.panelservice.com/ps/se.ashx?s=6C2369B275393EA2&pid=mf21098&int=so&eid=%reference%');
}
// Auslesen der Quoten für die angegeben Merkmale
$maxPerAge = $quotaAge[$ageGroup];
$maxPerGender = $quotaGender[$gender];
$maxPerEducation = $quotaEducation[$educationGroup];
$maxPerResicence = $quotaResidence[$residenceGroup];
// Quotenstopp
if (($casesAge >= $maxPerAge) || ($casesGender >= $maxPerGender)||($casesEducation >= $maxPerEducation) || ($casesResidence >= $maxPerResidence)) {
redirect('https://www.panelservice.com/ps/se.ashx?s=6C2369B275393EA2&pid=mf21098&int=qf&eid=%reference%');
}
auf der vorletzten Seite des Fragebogens:
put('SD22_01', $ageGroup);
put('SD23_01', $gender);
put('SD24_01', $educationGroup);
put('SD25_01', $residenceGroup);
und den Complete-Redirect danach.
Vielen lieben Dank schonmal für die Hilfe!