Liebes Support Team,
ich möchte nach Geschlecht quotieren und habe dafür folgenden Code auf der Seite nach der Geschlechtsabfrage platziert:
//Interne Variable Quotenzählung Gender: RO12_01
$quotaGender = [
1 => 1, // 1010 Frauen
2 => 1 // 990 Maenner
];
//BLOCK 2
$gender = value('SD01');
if ($gender = 1) { //weiblich
$genderGroup = 1;
} elseif ($gender = 2) { //maennlich
$genderGroup = 2;
} elseif ($gender = 3) { //non-binaer
question('RO13');
$genderGroup = value('RO13');
}
//BLOCK 3
// Abruf der vorliegenden Fälle für diese Merkmalsausprägung
$casesGender = statistic('count', 'RO12_01', $genderGroup);
// Auslesen der Quoten für die angegeben Merkmale
$maxPerGender = $quotaGender[$genderGroup];
// Zusätzliche Informationen anzeigen
debug($casesGender);
debug($maxPerGender);
// Quotenstopp
if (($casesGender >= $maxPerGender)) {
//redirect('LINK%reference%');
html('<p>Redirect ausgelöst</p>');
pageStop();
}
Und folgenden Code auf der letzten Fragebogenseite:
$gender = value('SD01');
if ($gender = 1) { //weiblich
$genderGroup = 1;
} elseif ($gender = 2) { //maennlich
$genderGroup = 2;
} elseif ($gender = 3) { //non-binaer
question('RO13');
$genderGroup = value('RO13');
}
put('RO12_01', $genderGroup);
$genderGroup = (int)value('RO12_01');
redirect('LINK%reference%');
Zu Testzwecken sind die Quoten je Gruppe auf 1 gesetzt.
Wenn ich in einem ersten Durchlauf "weiblich" auswähle zeigen die Variablen im Debug Modus folgende Werte:
$casesGender = 0
$maxPerGender = 1
Der redirect wird nicht ausgelöst und ich kann die Befragung bis zum Schluss ausfüllen. Ich mache das, indem ich im Debug Modus direkt zur letzten Seite springe. Ich erreiche den complete redirect und beende die Befragung, gehe dabei über den put-Befehl.
Wenn ich in einem zweiten Durchlauf "männlich" auswähle, zeigen die Varialben im Debug Modus folgende Werte:
$casesGender = 1
$maxPerGender = 1
Der Redirect wird ausgelöst. (Quotenstopp)
Wenn ich die Daten lösche und mit "männlich" anfange, sind die Werte auf den Variablen genau die gleichen.
Auch gleich ist das, was auf meiner internen Varialbe (hier R012_01) abgespeichert wird. In der Datenansicht liegt da immer eine 1 drin, egal ob ich im ersten Durchlauf männlich oder weiblich ausgewählt habe. Ich vermute, dass da der Fehler liegt, denn diese Variable sollte die Gruppe speichern, die in einem Fall 1 und im anderen Fall 2 sein sollte.
Ich weiss leider nicht weiter und würde mich über Hilfe freuen.
Besten Dank!