0 votes
in SoSci Survey (dt.) by s115752 (110 points)

Hallo,

ich versuche gerade eine einfache Quotierung für das Geschlecht in meinem Fragebogen zu erstellen. Es sollen einfach nur 50% weibliche und 50% männliche Vpn getestet werden.

Ich habe diesen PHB Code eingefügt:

$genderGrp = value('DD02');
if (($genderGrp == 1) or (genderGrp == 2))
{redirect('https://mingle.respondi.com/s/1187390/ospe.php3?c_0002=0&return_tic=%reference%')
}
$limits = array(
1 => 121,
2 => 120
);
$nQnr = statistic('count', 'DD02', $genderGrp);
$nMax = $limits[$genderGrp];

if ($Qnr >= $nMax) {redirect('https://mingle.respondi.com/s/1187390/ospe.php3?c_0002=2&return_tic=%reference%');
}

Leider wird mir im Debug Modus eine Fehlermeldung angezeigt. Könnten sie mir weiterhelfen?

Vielen Dank!

by SoSci Survey (328k points)
Gerne ... wenn Sie bitte die Fehlermeldung noch mitteilen könnten? Danke.
by s115752 (110 points)
Im PHP-Code trat ein Fehler auf.
Fehler im Fragebogen: Befehl oder String (Text) nicht abgeschlossen

Hinter einem Befehl wie z.B. question() steht kein Strichpunkt oder
ein String (Text in Anführungszeichen) ist nicht abgeschlossen oder
im String selbst kommt ein Anführungszeichen vor, z.B. html('Mach's besser!'); – in diesem Fall stellen Sie dem Anführungszeichen einen Backslash (\) voran.
Möglicherweise stimmen die öffnenenden und schließenden geschweiften Klammern für Anweisungsblöcke auch nicht überein.
PHP-Code

003 $genderGrp = value('DD02');
004 if (($genderGrp == 1) or ($genderGrp == 2))
005 {{
006   redirect('https://mingle.respondi.com/s/1187390/ospe.php3?c_0002=0&return_tic=%reference%')
007 }
008 $limits = array(
009 1 => 121,
010 2 => 120
by s115752 (110 points)
Ich sehe, dass bei Zeile 5 zwei Klammern stehen, aber im Code selbst habe ich keine zwei Klammern angegeben
by s115752 (110 points)
Ich habe es jetzt ohne Fehlermeldung hinbekommen.
Jetzt versuche ich gerade einzurichten, dass nur Vpn im Alter von 16 bis 80 am Versuch teilnehmen können. Ich habe hierfür folgenden Code verwendet:

$age = value('DD05');

if ($age < 16) {
  $ageGrp = 1;
} elseif ($age <= 80) {
  $ageGrp = 2;
} else {
  $ageGrp = 3;
}
put('DD07_01', $ageGrp);

$ageGrp = value('DD07_01');

if(($ageGrp < 2) or ($ageGrp > 2))
{redirect('https://mingle.respondi.com/s/1187390/ospe.php3?c_0002=0&return_tic=%reference%');
}

Es kommt zwar keine Fehlermeldung, aber im Debug Modus werden einfach alle Altersangaben zur Seite des Panels geschickt.

1 Answer

0 votes
by SoSci Survey (328k points)

Es kommt zwar keine Fehlermeldung, aber im Debug Modus werden einfach alle Altersangaben zur Seite des Panels geschickt.

Nun, das ist vermutlich recht einfach zu erklären. Wenn Sie den redirect()-Befehl einmal abschalten, können Sie die Debug-Meldungen einfacher verfolgen. Ich gehe stark davon aus, dass die Frage "DD05" keine offene Texteingabe ist, sondern eine Auswahlfrage. Entsprechend bekommen Sie nicht das Alter zurück, sondern den Antwortcode.

Falls Sie jedes Alter einzeln als Auswahloption eingetragen haben (nicht übersichtlich), können Sie wie folgt das Alter bekommen:

$age = (int)value('DD05', 'label');

Aber wahrscheinlicher müssen Sie beim Umkodieren die 16 und die 80 durch die korrekten Codes ersetzen.

by s115752 (110 points)
Nein, das Alter ist eine offene Texteingabe mit der Einschränkung Ziffern.
Wenn ich den redirect Befehl ausschalte, bekomme ich diese Meldung:

"Die Variable DD05 gibt es in diesem Projekt nicht (siehe Variablen-Übersicht). Daher kann kein Antwort-Wert dafür ermittelt werden."

Es gibt aber die Variable DD05, die das Alter offen abfragt und die ich auch auf der Seite vorher im Fragebogen eingefügt habe.
by SoSci Survey (328k points)
Ich bin ziemlich sicher, dass die Variable korrekt DD05_01 heißt. Bitte wählen Sie zur Kontrolle in der Frage DD05 unten den Karteireiter "Variablen" oder werfen Sie einen Blick in die "Variablen-Übersicht" links in der Navigation. Danke.
by s115752 (110 points)
Vielen Dank. Ich stand wirklich auf dem Schlauch. Jetzt funktioniert alles.

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

...