0 votes
in SoSci Survey (dt.) by s091665 (130 points)
closed by s091665

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%');

closed with the note: Danke für die schnelle Antwort. Wir konnten jetzt sehen, dass alles problemlos gespeichert wird. Wir hatten nicht die aktuellen Datensätze angeschaut...
by SoSci Survey (323k points)
> und haben dafür sechs interne Variablen definiert

Sachlich brauchen Sie m.E. nur zwei. Einmal "Alter x Geschlecht" und einmal "Bildung". Die Counts können Sie natürlich zusätzlich speichern, das hat aber mit der Funktion dann nichts zu tun.

> Leider bleiben die Zellen mit den internen Variablen in der Ansicht "Daten ansehen" leer, wenn wir Pretests machen.

Was zeigt die Debug-Information denn für die Seite mit dem PHP-Code an?`Vor allem dann, wenn Sie das redirect() mal auskommentieren.

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...