0 votes
in Methoden-Fragen by s299132 (170 points)
edited by s299132

Hallo,

ich würde gern es einstellen, dass meine Umfrage schaut, wieviele Leute mit einem bestimmten Merkmal das Ende der Umfrage erreicht haben?

Ich habe auch auf Seite 24 ein redirect eingebettet, daher, würde mein einfaches "beendet" so aussehen, ich denke:
$finished = statistic('count', 'LASTPAGE', 24);

... würde es so aussehen, wenn ich auch Anzahl von nur Frauen (SD03_02==2) zusammenzählen würde?
$finished_female = statistic('count', array('LASTPAGE',SD03_02), array(24,2));

Komplette Quotierungscode wäre dann wie folgt, richtig?

$quotaGender = [ 1 => 300, // 300 Männer (Code 1) 2 => 300 // 300 Frauen (Code 2) ];

$gender = value('SD02');
$maxPerGender = $quotaGender[$gender];

$finished_female = statistic('count', array('LASTPAGE','SD03_02'), array(24,2));

// Quotenstopp
if ($finished_female >= $maxPerGender) {
redirect('https://www.panelanbieter.de/?xyz=quotaABCDEF&uid=%reference%');
}

Vielen Dank nochmal für die Rückmeldung!

1 Answer

0 votes
by SoSci Survey (327k points)
selected by s299132
 
Best answer

Ich würde eher vorschlagen, das Quotenmerkmal am Ende des Fragebogen in eine interne Variable zu kopieren, und dann für di Quotierung nur dies zu zählen: Kopieren der Quotenmerkmale.

by s299132 (170 points)
Hallo, wir haben zufällig die Lösung gefunden (vielleicht handelt es um ein Bug?): es muss vor dem Abschluss ein zusätzliche Variable auftauchen... und dann funktioniert es. Anbei den InternCode:

<?xml version="1.0"?>
<questionnaire>

<!-- Seite 1 -->
<page intID="1">
<question id="SA01" intID="2" />
</page>


<!-- Seite 2 -->
<page intID="3">
<question id="QU01" intID="11" />
<php intID="4"><![CDATA[
$quotaGender = [
  1 => 2,  // 150 Women (Code 01)
  2 => 0,   // 150 Men (Code 02)
  3 => 500,   // 500 diverse (Code 03)
];


$gender = value('SA01');
$maxPerGender = $quotaGender[$gender];
$casesGender = statistic('count', 'QU01_01', $gender);

if ($casesGender >= $maxPerGender) {
  redirect('https://www.youtube.com/watch?v=ybhNTqetubQ');
}
]]></php>
</page>


<!-- Seite 3 -->
<page intID="9">
<question id="SA08" intID="10" />
</page>


<!-- Seite 4 -->
<page intID="5">
<php intID="6"><![CDATA[
$gender = value('SA01');
put('QU01_01', $gender);
]]></php>
</page>


<!-- Seite 5 -->
<page intID="7">
<php intID="8">
redirect('https://www.youtube.com/watch?v=aff-hY_hDyw');
</php>
</page>


</questionnaire>
by SoSci Survey (327k points)
> es muss vor dem Abschluss ein zusätzliche Variable auftauchen

Was genau meinen Sie?
by s299132 (170 points)
....In Version 1 zwischen das PhP-Code zur Quotierung und put()-Befehl gibt es keine weitere Variable/Frage. In Version 2 zwischen das PhP-Code zur Quotierung und put()-Befehl gibt es noch eine Frage.

In Version 1, bekommt man die Fehlermeldung "tems in der nachfolgenden Fragen werden auf dieser Seite schon weiter oben angezeigt. Dies führt fast zwangsläufig zu Datenverlust! Falls Sie eine Frage mehrfach benötigen, legen Sie bitte eine Kopie der Frage an. Betroffen sind folgende Items: QU01_01.". Bei Version 2 nicht. Übrigens, wenn ich die Variable woanders verschiebe, und wieder das put()-Befehl das PhP-Code zur Quotierung folgt, bekommt man wieder diese Fehlermeldung (siehe Interne Code unten).




<?xml version="1.0"?>
<questionnaire>

<!-- Seite 1 -->
<page intID="1">
<question id="SA01" intID="2" />
</page>


<!-- Seite 2 -->
<page intID="9">
<question id="SA08" intID="10" />
</page>


<!-- Seite 3 -->
<page intID="3">
<question id="QU01" intID="11" />
<php intID="4"><![CDATA[
$quotaGender = [
  1 => 2,  // 150 Women (Code 01)
  2 => 0,   // 150 Men (Code 02)
  3 => 500,   // 500 diverse (Code 03)
];


$gender = value('SA01');
$maxPerGender = $quotaGender[$gender];
$casesGender = statistic('count', 'QU01_01', $gender);

if ($casesGender >= $maxPerGender) {
  redirect('https://www.youtube.com/watch?v=ybhNTqetubQ');
}
]]></php>
</page>


<!-- Seite 4 -->
<page intID="5">
<php intID="6"><![CDATA[
$gender = value('SA01');
put('QU01_01', $gender);
]]></php>
</page>


<!-- Seite 5 -->
<page intID="7">
<php intID="8">
redirect('https://www.youtube.com/watch?v=aff-hY_hDyw');
</php>
</page>


</questionnaire>
by SoSci Survey (327k points)
> Items in der nachfolgenden Fragen werden auf dieser Seite schon weiter oben angezeigt

Danke für die Erläuterung. Interessant, dass diese Fehlermeldung überhaupt auftaucht. SOllte sie m.E. nicht. Aber das muss ich mir mal in einem Testprojekt im Kontext ansehen.

Der technische Unterschied besteht darin, dass im ersten Fall die beiden Seiten mit dem Quotencheck (die ja keinen Inhalt zeigt, und deshalb direkt zur nächsten Seite weiter springt) gemeinsam mit dem put() angezeigt wird und im zweiten Fall mit der Frage SA08.

Für Ihr Projekt sollte die Klärung des Problems nicht weiter relevant sein, denn ich gehe davon aus, dass Sie zwischen Quotencheck und redirect()/put() ohnehin noch Fragen anzeigen möchten.
by s299132 (170 points)
... genau. Deswegen habe ich es mal hier klar geschildert - für die weitere Entwicklung und für anderen, bei wem dieses Problem auftaucht.
Vielen Dank nochmal für den Geduld - es war kein einfaches Durchgang.

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

...