Hallo!
Wir programmieren gerade die Quotierung für eine Studie (Kreuzquote aus Alter und Geschlecht, Bildung separat) und haben dafür sechs interne Variablen definiert. Wir würden nun gerne überprüfen, ob die internen Variablen funktionieren. Leider bleiben die Zellen mit den internen Variablen in der Ansicht "Daten ansehen" leer, wenn wir Pretests machen. Ist vielleicht ein Fehler im PHP-Code? Oder werden interne Variablen nicht in Pretests gespeichert? Redirect-Links, die wir vom Panelanbieter bekommen haben, funktionieren ohne Probleme.
Vielen Dank für Ihre Hilfe!
Quotierungsseite zu Beginn:
//Quoten definieren
$quotaDemGroup = [
'1-1' => 232, '1-2' => 226, // 232 males, 226 females in age group 18-29
'2-1' => 191, '2-2' => 190, // 191 males, 190 females in age group 30-39
'3-1' => 272, '3-2' => 265, // 272 males, 265 females in age group 40-49
'4-1' => 232, '4-2' => 235, // 232 males, 235 females in age group 50-59
'5-1' => 173, '5-2' => 184 // 173 males, 184 females in age group 60-69
];
$quotaEdu = [
1 => 915, // 915 participants with low education
2 => 638, // 638 participants with medium education
3 => 647 // 647 participants with high education
];
// Geschlecht wird direkt ausgelesen
$gender = value('SD01');
// Das Alter wird umkodiert
$age = value('SD02_01');
if ($age <= 29) {
$ageGroup = 1;
} elseif ($age <= 39) {
$ageGroup = 2;
} elseif ($age <= 49) {
$ageGroup = 3;
} elseif ($age <= 59) {
$ageGroup = 4;
} else {
$ageGroup = 5;
};
// Schulbildung wird direkt ausgelesen
$edu = value('SD03');
// Definition einer Variable mit Altersgruppe und Geschlecht/Kreuzquote
// Aus 3 und 2 wird hier '3-2'
$demGroup = $ageGroup.'-'.$gender;
// Abruf/Zählen der vorliegenden Fälle für die angegebenen Merkmale
$demGroupCount = statistic('count', 'IV04_01', $demGroup);
$eduCount = statistic('count', 'IV03_01', $edu);
// Auslesen der Quoten für die angegeben Merkmale
$maxPerDemGroup = $quotaDemGroup[$demGroup];
$maxPerEdu = $quotaEdu[$edu];
// Quotenstopp
if (($demGroupCount >= $maxPerDemGroup) || ($eduCount >= $maxPerEdu))
{
goToPage('RV'); // Gleich weiter zu Seite mit Kennung "RV" (QuotaFull)
}
PHP-Code für Complete-Seite am Ende des Fragebogens:
// Geschlecht wird direkt ausgelesen
$gender = value('SD01');
// Geschlecht speichern
put('IV01_01', $gender);
// Das Alter wird umkodiert
$age = value('SD02_01');
if ($age <= 29) {
$ageGroup = 1;
} elseif ($age <= 39) {
$ageGroup = 2;
} elseif ($age <= 49) {
$ageGroup = 3;
} elseif ($age <= 59) {
$ageGroup = 4;
} else {
$ageGroup = 5;
};
// Alter speichern
put('IV02_01', $ageGroup);
// Schulbildung wird direkt ausgelesen
$edu = value('SD03');
// Schulbildung speichern
put('IV03_01', $edu);
// Definition einer Variable mit Altersgruppe und Geschlecht/Kreuzquote
// Aus 3 und 2 wird hier '3-2'
$demGroup = $ageGroup.'-'.$gender;
// Kreuzquote speichern
put('IV04_01', $demGroup);
// Abruf/Zählen der vorliegenden Fälle für die demographische Gruppe
$demGroupCount = statistic('count', 'IV04_01', $demGroup);
// Anzahl der Fälle je Zelle der demographischen Gruppe
put('IV05_01', $demGroupCount);
// Abruf/Zählen der vorliegenden Fälle für die Schulbildung
$eduCount = statistic('count', 'IV03_01', $edu);
// Anzahl der Fälle je Zelle je Schulbildungsniveau
put('IV06_01', $eduCount);
//Weiterleiten zu Panelanbieter
redirect('https://panelanbieter.com/complete?p=95944_ecfcf0eb&m=%SPM_PANELIST_ID%');