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