0 votes
in SoSci Survey (dt.) by s092836 (210 points)

Hallo zusammen,

ich verzweifle leider gerade an einer recht simplen Quotierung für einen externen Panel-Provider.

Ich brauche einfach einen Quota-Stop ab 400 Fällen. Merkmalsausprägungen sind somit völlig egal, es geht nur um das Auslesen der bisherigen ProbandInnen.

Mein Ansatz war es, auszulesen, wer die letzte Frage im Fragebogen beantwortet hat (somit wären Abbrecher nicht erfasst). Dann sowohl die Werte für 1 = ja, als auch 2 = nein zu zählen. Diese in einer internen Variable zu speichern. Diese Fälle auszulesen und ab 400 Fällen den entsprechenden Redirect greifen zu lassen.

Ich scheitere leider aber am Schreiben des entsprechenden Codes. Wenn die Variable auf die ich zugreifen möchte VA01 lautet und die Interne Variable VA01_01, wie muss dann mein PHP-Code aussehen und auf welchen Seiten des Fragebogens muss ich die jeweiligen Codes speichern?

Vielen Dank vorab!

Beste Grüße

1 Answer

0 votes
by SoSci Survey (305k points)

Spontan würde ich folgenden Code verwenden:

$count = statistic('count', 'VA01_01');
if ($count > 400) {
  redirect('https://screenoutlink');
}

Dieser Code würde einfach auf der ersten Seite im Fragebogen platziert.

by s092836 (210 points)
Vielen Dank!

Ich habe als Variable die ich auszählen möchte nun die Nationalität gewählt, da wir ProbandInnen aus einer bestimmten Region benötigen. Im Fragebogen steht 1 = chinesisch (im Count will ich nach Möglichkeit ausschließlich jene ProbandInnen, die tatsächlich chinesisch sind zählen).

Dafür habe ich eine Seite nach der entsprechenden Nationalitäts-Variable, die ich auslesen möchte noch: if (value('VA01') > 1);
put('VA01_01');

geschrieben.

Wenn ich den Wert der Quotierung nun probehalber auf 0 setze, dann einmal durchklicke und bei der Nationalitätsskala 1 auswähle, werde ich beim zweiten Durchlauf jedoch nicht an der geplanten Stelle zu Beginn des Fragebogens mit Redirect abgewiesen. Habe ich einen Denkfehler drin?

Beste Grüße
by SoSci Survey (305k points)
> werde ich beim zweiten Durchlauf jedoch nicht an der geplanten Stelle zu Beginn des Fragebogens mit Redirect abgewiesen.

Der Redirect erfolgt an der Stelle, wo Sie den PHP-Code mit dem redirect() platzieren.

Wenn Sie beim Erreichen von 400 Personen die Befragung schließen möchten, bietet sich die erste Seite an.

Was wäre denn die "geplante Stelle" aus Ihrer Sicht?
by s092836 (210 points)
Es muss natürlich nicht: if (value('VA01') > 1);
put('VA01_01');

sondern if (value('VA01') < 2);
put('VA01_01');

heißen. Das Problem bleibt aber bestehen.
by SoSci Survey (305k points)
Meine Frage auch ... wo würden Sie denn den Redirect gerne durchführen?
by s092836 (210 points)
Vereinfacht dargestellt habe ich auf Seite 1 des Fragebogens folgenden Code geschrieben: $count = statistic('count', 'VA01_01');
if ($count > 0) {
  redirect('https://screenoutlink');
}

Auf Seite 9 folgt die Nationalitätsskala (VA01)

Eine Seite später steht der Code: if (value('VA01') < 2);
put('VA01_01');

Ich möchte nun, dass ich den Fragebogen zwei mal ausfüllen kann, sodass beim ersten Mal, sofern ich 1 = chinesisch auf Frage VA01 anklicke, dieser Wert in der internen Variable VA01_01 gepeichert wird und daraufhin beim zweiten Aufrufen des Fragebogens auf Seite 1 der redirect erfolgt, da die Quote erreicht ist.

Die Platzierung des Quotenstopps auf Seite 1 macht in meinen Augen schon Sinn.

Vielen Dank für Ihre Mühe!
by SoSci Survey (305k points)
> put('VA01_01');

Da fehlt m.E. noch der Wert, der gesetzt werden soll z.B.

put('VA01_01', 1);

Aber Vorsicht: <2 kann auch ein Fehlercode sein wie -9 "keine Antwort". Evtl. besser:

if (value('VA01') == 1) {
  put('VA01_01', 1);
}

> ereinfacht dargestellt habe ich auf Seite 1 des Fragebogens folgenden Code geschrieben: $count = statistic('count', 'VA01_01');

Wenn dieser Code auf Seite 1 steht, dann wird direkt beim Aufruf des Fragebogens (also auf Seite 1) geprüft, wie viele Personen die chinesische Staatsbürgerschaft bisher ausgewählt haben - und wenn das Limit erreicht ist, erfolgt der Redirect.

Noch ein weiterer Filter direkt nach VA01 macht inhaltlich vermutlich nicht viel Sinn.

> Ich möchte nun, dass ich den Fragebogen zwei mal ausfüllen kann, sodass beim ersten Mal, sofern ich 1 = chinesisch auf Frage VA01 anklicke, dieser Wert in der internen Variable VA01_01 gepeichert wird und daraufhin beim zweiten Aufrufen des Fragebogens auf Seite 1 der redirect erfolgt, da die Quote erreicht ist.

Das sollte mit Ihrem aktuell Code der Fall sein. Beim zweiten Aufruf wäre das Ergebnis von statistic() der Wert 1, und das ist >0.
by s092836 (210 points)
Großartig! Jetzt funktioniert es. Vielen Dank noch einmal!

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

...