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

0 votes

Hallo,
vielen Dank für Eure letzte Antwort! Ihr seid der Hit! Mein Fragebogen ist nun fast fertig, es fehlt nur noch der Feinschliff.

Die Befragungteilnehmer geben in Frage "A416" (Fragetyp: offenen Nennungen) jeweils Texte an, je nachdem wird der Fragebogen geloopt und es kommen gemäß der Anzahl "n" der Angaben in Frage A416, "n" Wiederholungen der gleichen Fragebattierien (in unterschiedlichen Rubriken gespeichert).

Damit die Befragten wissen für welche Angabe aus "A416" sie den Frageblock ausfüllen, würde ich gerne eine Überschrift pro Frageblock einführen. Beispiel: Befragter gibt bei "A416" den Text an: "Abteilung 1", "Abteilung 2", "Abteilung 3". Im ersten Loop soll dann als Seitenüberschrift stehen "Abteilung 1"; wenn dieser Frageblock abgeschlossen ist, soll im zweiten Frageblock "Abteilung 2" stehen etc.

Ich habe folgenden PHP-Code verwendet...:
replace('%abteilung%', 'A416', 'response');

... und als Überschrift den Text geschrieben:

Abteilung: %abteilung%

Nun erscheint nur die Angabe, wie viele Angaben (also "n") gemacht wurden (Bsp. von oben würde dann stehen: "Abteilung: 3" (zu Beginn jeder der drei Loops) aber nicht die konkrete Angabe des Textes, die in "A416" angegeben wurden.

Könnt ihr mir weiterhelfen, wie ich meinen Code abändern muss? Ich wäre euch super dankbar!

in SoSci Survey (dt.) by s172230 (160 points)
Posten Sie doch bitte noch den kompletten PHP-Code mit loopPage() ... dann kann ich mich konkret darauf beziehen.

Kurzum werden Sie beim replace() die Zeile noch angeben müssen, z.B.

replace('%abteilung%', id('A416', $i+1), 'response');
Danke für die schnelle Rückmeldung.
Ich habe es wie folgt gemacht:

Seite 2:
// Anzahl der Abteilungen auslesen und diese als oberste Grenze setzen
$a = array();
$b = value('FR01');
for ($i=0 ; $i<$b; $i++) {
    $a[] = $i+ 1;
}

question('A416', $a);

S3:
$anzahlabt = (int)value('FR01');
// Frageblock wiederholen
loopToPage('blockEnd', $anzahlabt);
// Definition der Rubriken
$rubriken = array('X1','X2','X3','X4','X5');
registerVariable($rubriken);

$anzahlabt = (int)value('FR01');
// Frageblock wiederholen
loopToPage('blockEnd', $anzahlabt);
// Definition der Rubriken
$rubriken = array('X1','X2','X3','X4','X5');
registerVariable($rubriken);

$i = loopIndex();
$rubrik = $rubriken[$i];
 
question(id($rubrik, 1));
question(id($rubrik, 2));
question(id($rubrik, 3));
question(id($rubrik, 4));
question(id($rubrik, 5), $itemliste);
question(id($rubrik, 6), $itemliste);
question(id($rubrik, 7), $itemliste);

etc.

hilft das weiter?

>> habe auch den Code (s.o.) eingefügt und 1. gute Nachricht: Ja es funktioniert! Aber leider taucht auch folgende Fehlermeldung auf:

Fehler im Fragebogen: Die PHP-Variable $i wurde verwendet, in diesem PHP-Code aber noch nicht definiert (sie enthält noch keinen Wert).

PHP-Code

001 namespace s2survey\questionnaire\environment;
002
003 replace('%abteilung%', id('A419', $i+1), 'response');
004 return 'ok';

(Zeile 003 ist rot hinterlegt).

Beste Grüße

1 Answer

0 votes

Sie haben in Ihrem Code die folgende Zeile:

$i = loopIndex();

Setzen Sie das replace() bitte einfach direkt darunter.

replace('%abteilung%', id('A419', $i+1), 'response');
by SoSci Survey (250k points)
Danke euch, jetzt funktioniert es einwandfrei!
...