0 votes
in SoSci Survey (dt.) by s094803 (160 points)
edited by SoSci Survey

Die Aufgabe
Aus einer Mehrauswahlfrage können die Probanden 25 potenzielle Arbeitgeber auswählen. Davon sollen maximal drei in einem Folgeblock mit sechs Fragen aud drei Seiten abgefragt werden.

Bislang habe ich den folgenden PHP-Code genutzt.

$itemliste = array(); // Eine leere Liste erstellen
$anzahl_items = 25; // 25 Items überprüfen
$frage = 'AG02';

for ($i=1; $i<=$anzahl_items; $i++) { // Durchzählen von 1 bis 25
  $kennung = $frage.'_'.$i; // Ergibt z.B. AG_02_1
  // Hat das Item einen Wert von mindestens 2?
  if (value($kennung) == 2) { $itemliste[] = $i;  }}

$Anzahl=count('$itemliste');
put('IN01_01', $Anzahl);

html( '<p>'. count($itemliste).' relevante Items: '. implode(', ', $itemliste). '</p>' );
answersOption('show-explanation', 'yes');
answers('AG02');

if (!isset($itemsAB)) {
  $itemsAB = getItems('AG02', 'is', 2);
  shuffle($itemsAB);
  registerVariable($itemsAB);}

html( '<p>'. count($itemliste).' relevante Items: '. implode(', ', $itemsAB). '</p>' );


$text = value('AG02', 'text');
// Platzhalter %platzhalter% vorbereiten
replace('%platzhalter%', $text);

Als Ergebnis erhalte ich zurückgespielt, wie viele Antworten ein Proband gegeben hat und welche Arbeitgeber er genannt hat.

Bei der Nutzung des Platzhalters erhalte ich bei der Eingabe von zwei und mehr als zwei Arbeitgeber eine Liste, die als Platzhalter dann alle genanten Arbeitgeber enthält.

Des Weiteren ist es mir nicht gelungen (auch nicht mit der Anleitung) eine Schleife zu entwickeln, mit der dann für die maximal drei Arbeitgeber dann jeweils ein Bock von sechs Fragen, verteilt auf drei Seiten gestellt werden kann.

Zuletzt wehrt sich PHP gegen den Befehl Put. Im Datensatz erscheint immer eine 1, egal wieviele Afrbeitgeber angegeben werden. Die interne Variable IN01_01 will ich gern verwenden, um den Probanden 1, 2 oder drei Arbeitgeber vorzulegen.

Zumn Abschluss noch eine Frage: Wo speichert das Programm die jeweils genannten Arbeitgeber (also Platzhalter)? In der Datendatei werden die Platzhalter nicht gespeichert.

Ich hoffe, dass Sie mir helfen können?

Vielen Dank!

Bernhard Heidel

1 Answer

0 votes
by SoSci Survey (323k points)

Zuletzt wehrt sich PHP gegen den Befehl Put. Im Datensatz erscheint immer eine 1, egal wieviele Afrbeitgeber angegeben werden.

Sie müssten die Anzahl bereits in der Variable AG02 haben.

Aber abgesehen davon ... lassen Sie einfach bei ...

$Anzahl=count('$itemliste');

die Anführungszeichen weg:

$Anzahl=count($itemliste);

... sonst zählen Sie nur, wie viele Elemente der Text "$itemliste" hat. Das ist immer eines.

Wo speichert das Programm die jeweils genannten Arbeitgeber (also Platzhalter)? In der Datendatei werden die Platzhalter nicht gespeichert.

Diese müssten Sie direkt in AG02_01, AG02_02 u.s.w. finden - also jene, wo eine 2 steht. Denn das sind die ausgewählten, die Sie ja weiter abfragen.

Ich vermute aber, das war nicht genau Ihre Frage. Für eine adäquate Antwort werde ich aber den genaueren Kontext benötigen, also den PHP-Code von den folgenden Seiten wo die Daten erhoben werden, zu welchen Sie den Arbeitgeber benötigen.

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

...