Ich versuche Screenout und Quotenstops für Alter und Geschlecht zu implementieren und bin hierbei nach den Schritten der Hilfeseite vorgegangen,
Das Problem ist, dass ich in der Vorschau und beim Pretest auch auf die jewieligen redirect Links (sowohl Screenout als auch Quotenstop beim separaten Test) geschickt werde, wenn ich eigentlich gültige Antworten eingebe, z. B. eine der zwei zur Verfügung stehenden Kategorien beim Geschlecht oder ein Alter von 25.
Die unten aufgeführten Codes stehen auf der jeweils nachfolgenden Seite der Variablen, bzw. das letzte Stück steht über dem Complete Link auf der vorletzten Seite.
Vielen Dank schonmal!
*Edit: Der Vollständigkeit halber: Ich habe die internen Variablen im Fragenkatalog angelegt, die dann auf der vorletzen Seite die Werte über "put()" bekommen.
Code fürs Alter:
//Quoten und Screenout
$quotaAge = [
2 => 225,
3 => 210,
4 => 200,
5 => 365
];
// Alter
$age = value('SG01');
if ($age < 18) {
$ageGroup = 1;
} elseif ($age <= 29) {
$ageGroup = 2;
} elseif ($age <= 39) {
$ageGroup = 3;
} elseif ($age <= 49) {
$ageGroup = 4;
} elseif ($age <= 65) {
$ageGroup = 5;
} else {
$ageGroup = 6;
}
//Screenout
if (!array_key_exists($ageGroup, $quotaAge)) {
redirect('Panelanbieter.de&return_tic=%panelID');
}
// Abruf der vorliegenden Fälle für diese Merkmalsausprägung
$casesAge = statistic('count', 'SO02_01', $ageGroup);
// Auslesen der Quoten für die angegeben Merkmale
$maxPerAge = $quotaAge[$ageGroup];
// Quotenstopp
if (($casesAge >= $maxPerAge)) {
redirect('Panelanbieter.de&return_tic=%panelID%');
}
Code fürs Geschlecht:
//Quoten
$quotaGender = [
1 => 500,
2 => 500
];
// Geschlecht
$gender = value('SG02');
// Abruf der vorliegenden Fälle für diese Merkmalsausprägung
$casesGender = statistic('count', 'SO02_02', $gender);
// Auslesen der Quoten für die angegeben Merkmale
$maxPerGender = $quotaGender[$gender];
// Quotenstopp
if (($casesGender >= $maxPerGender)) {
redirect('Panelanbieter.de&return_tic=%panelID%');
}
Vorletzte Seite/Complete Redirect
$gender = value('SG02');
$age = value('SG01');
if ($age < 18) {
$ageGroup = 1;
} elseif ($age <= 29) {
$ageGroup = 2;
} elseif ($age <= 39) {
$ageGroup = 3;
} elseif ($age <= 49) {
$ageGroup = 4;
} elseif ($age <= 65) {
$ageGroup = 5;
} else {
$ageGroup = 6;
}
put('SO02_01', $ageGroup);
put('SO02_02', $gender);
// Complete Redirect
redirect('Panelanbieter.de&return_tic=%panelID%');