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

Hallo liebes Team,

ich versuche mittels der Anweisungen Ihrer Internetseite die Antworten einer Frage mit offener Nennung in den Fragetext einer nächsten Frage zu übernehmen. Leider scheint der Platzhalter nicht zu funktionieren und ich Frage mich woran es liegt. Die Teilnehmer wurden zuvor in vier Gruppen eingeteilt.

Meine PHP-Funktion auf der Folgeseite ist:

if (value('ZU01') == 1) {
replace('%ZieleUnternehmen%', 'IN01', 'response');
} elseif (value('ZU01') == 3) {
replace('%ZieleUnternehmen%', 'IN01', 'response');
} elseif (value('ZU01') == 2) {
replace('%VorteileMitarbeiter%', 'IN02', 'response');
} elseif (value('ZU01') == 4) {
replace('%VorteileMitarbeiter%', 'IN02', 'response');
}

In den Fragetexten habe ich dann folgendes Eingetragen:

Gruppe 1:
Sie haben die folgenden Ziele genannt:
'%ZieleUnternehmen%

Denken Sie bitte über realistische Handlungsmöglichkeiten nach, mit denen Ihre Führungskraft die die Erreichung dieser unternehmerischen Ziele unterstützten kann.

Gruppe 2:
Sie haben die folgenden Vorteile genannt:
'%VorteileMitarbeiter%

Denken Sie bitte über realistische Handlungsmöglichkeiten nach, mit denen Ihre Führungskraft die Sicherung Ihrer Vorteile unterstützten könnte.

Gruppe 3:
Sie haben die folgenden Ziele genannt:
'%ZieleUnternehmen%

Denken Sie bitte über realistische Handlungsmöglichkeiten nach, mit denen Sie eigeninitiativ die Erreichung dieser unternehmerischen Ziele unterstützten können.

Gruppe 4:
Sie haben die folgenden Vorteile genannt:
'%VorteileMitarbeiter%

Denken Sie bitte über realistische Handlungsmöglichkeiten nach, mit denen Ihre Führungskraft die Sicherung Ihrer Vorteile unterstützten könnte.

Debug zeigt keinen Fehler, füllt jedoch nicht die Antworten ein sondern
z.B.

Sie haben die folgenden Ziele genannt:
'4 (hier müssten die Antworten stehen)
Denken Sie bitte über realistische Handlungsmöglichkeiten nach, mit denen Ihre Führungskraft die die Erreichung dieser unternehmerischen Ziele unterstützten kann.
Nennen Sie bitte mindestens vier Handlungsmöglichkeiten, gerne auch mehr.

Über Hilfe bedanke ich mich im Voraus !
Grüße

2 Answers

0 votes
by SoSci Survey (308k points)

In den Gruppen 1 und 2 belegen Sie mit dem PHP-Code den Platzhalter %ZieleUnternehmen%. In den Gruppen 3 und 4 den Platzhalter %VorteileMitarbeiter%. Der jeweils andere Platzhalter bleibt nicht-belegt.

Wenn Sie nun in Gruppe 2 den Platzhalter %VorteileMitarbeiter% verwenden möchten (wie dem unteren Teil Ihrer Frage zu entnehmen), dann ist dieser nicht definiert.

Die Debug-Information hilft übrigens sehr gut dabei, solche Probleme besser zu durchschauen: Fragebogen-Probleme lösen

by s055756 (160 points)
Danke für die Antwort.
Wie kommen Sie darauf, dass ich in In den Gruppen 1 und 2 den Platzhalter %ZieleUnternehmen%. In den Gruppen 3 und 4 den Platzhalter %VorteileMitarbeiter% belege?

Ich kopiere gerne noch mal rein, wenn ich Sie nicht falsch verstehe sind die Gruppen richtig mit den Platzhaltern belegt. Die Reihenfolge der Gruppen ist 1,3,2,4. Haben Sie eine Idee wieso der Platzhalter nicht gefüllt wird. Danke noch einmal!

if (value('ZU01') == 1) {
replace('%ZieleUnternehmen%', 'IN01', 'response');
} elseif (value('ZU01') == 3) {
replace('%ZieleUnternehmen%', 'IN01', 'response');
} elseif (value('ZU01') == 2) {
replace('%VorteileMitarbeiter%', 'IN02', 'response');
} elseif (value('ZU01') == 4) {
replace('%VorteileMitarbeiter%', 'IN02', 'response');
}
by SoSci Survey (308k points)
> Wie kommen Sie darauf, dass ich in In den Gruppen 1 und 2 den Platzhalter %ZieleUnternehmen%. In den Gruppen 3 und 4 den Platzhalter %VorteileMitarbeiter% belege?

Ah, ich sehe, Sie haben die NUmmer im Filter in einer eigenwilligen Abfolge verteilt. Stimmt, dann ist meine Annahme woher das Problem stammt, nicht korrekt.

Nur zur Sicherheit: SIe haben auf der Seite zuerst den PHP-Code und dann den Text, ja? Wie binden Sie den Text ein? Was zeigt die Debug-Information auf der Seite an?
by s055756 (160 points)
Hallo, ich schreibe gerne einmal die PHP Codes im Folgenden pro relevanter Seiten auf. Die Debug Funktion zeigt weder eine Warnung noch einen Fehler. Der "Text" bzw. die Frage ist nicht in den Fragebogen reingezogen, da es sich hier um eine Zuteilung verschiedener Fragen zu den vier Gruppen handelt, deshalb nur mit PHP


Seite 4:

- Zufallsgenerator
danach Einordnung der beiden Fragen zu IN zur passenden Gruppe:

if (value('ZU01') == 1) {
  text('InformationTopDownTextMZP2');
  question('IN01');
} elseif (value('ZU01') == 2) {
  text('InformationBottomUpTextMZP2');
  question('IN02');
} elseif (value('ZU01') == 3) {
  text('InformationTopDownTextMZP2');
  question('IN01');
} elseif (value('ZU01') == 4) {
  text('InformationBottomUpTextMZP2');
  question('IN02');
} else {
}

Seite 5:
- Platzhalter aktivieren zur Übernahme der Antworten aus IN in PA

if (value('ZU01') == 1) {
replace('%ZieleUnternehmen%', 'IN01', 'response');
} elseif (value('ZU01') == 3) {
replace('%ZieleUnternehmen%', 'IN01', 'response');
} elseif (value('ZU01') == 2) {
replace('%VorteileMitarbeiter%', 'IN02', 'response');
} elseif (value('ZU01') == 4) {
replace('%VorteileMitarbeiter%', 'IN02', 'response');
}

Seite 6:
- Zuordnung der vier Fragen zu PA zur passenden Gruppe.

if (value('ZU01') == 1) {
  question('PA01');
} elseif (value('ZU01') == 2) {
  question('PA03');
} elseif (value('ZU01') == 3) {
  question('PA04');
} elseif (value('ZU01') == 4) {
  question('PA02');
} else {
}


UND zusätzlich in den Fragen zu PA ist der Platzhalter in der Frage wie folgt angelegt:

Gruppe 1:
Sie haben die folgenden Ziele genannt:
'%ZieleUnternehmen%

Denken Sie bitte über realistische Handlungsmöglichkeiten nach, mit denen Ihre Führungskraft die die Erreichung dieser unternehmerischen Ziele unterstützten kann.

Gruppe 2:
Sie haben die folgenden Vorteile genannt:
'%VorteileMitarbeiter%

Denken Sie bitte über realistische Handlungsmöglichkeiten nach, mit denen Ihre Führungskraft die Sicherung Ihrer Vorteile unterstützten könnte.

Gruppe 3:
Sie haben die folgenden Ziele genannt:
'%ZieleUnternehmen%

Denken Sie bitte über realistische Handlungsmöglichkeiten nach, mit denen Sie eigeninitiativ die Erreichung dieser unternehmerischen Ziele unterstützten können.

Gruppe 4:
Sie haben die folgenden Vorteile genannt:
'%VorteileMitarbeiter%

Denken Sie bitte über realistische Handlungsmöglichkeiten nach, mit denen Ihre Führungskraft die Sicherung Ihrer Vorteile unterstützten könnte.

Angezeigt werden jedoch nicht die Ziele/Vorteile sondern:
'4

Leider ist mir noch immer nicht ersichtlich, wo der Fehler liegt. Sehen Sie das Problem? Danke !
by SoSci Survey (308k points)
> Angezeigt werden jedoch nicht die Ziele/Vorteile sondern:
> '4

Ah, so langsam kommen wir die Sache näher :) Ich hatte beim erten Lesen der Frage tatsächlich den letzten Absatz überlesen, wo genau das Problem liegt.

Posten Sie doch bitte einmal, was die Variablen-Übersicht zu der Variable IN01 und IN02 anzeigt.

Und bitte posten Sie auch (endlich) die Debug-Information von Seite 5: https://www.soscisurvey.de/help/doku.php/de:create:debugging
by s055756 (160 points)
Gerne die gewünschten Angaben:

Variablen Übersicht von IN01 und IN02
Rubrik IN: Information_MZP2

[IN01] !Offene Nennungen
InformationTopDown
"Welche unternehmerischen Ziele könnte diese Veränderung verfolgen oder verfolgt haben?"

IN01 Anzahl der Nennungen
Ganze Zahl
IN01x01 Nennung 1
IN01x02 Nennung 2
IN01x03 Nennung 3
IN01x04 Nennung 4
IN01x05 Nennung 5
IN01x06 Nennung 6
IN01x07 Nennung 7
IN01x08 Nennung 8
IN01x09 Nennung 9
IN01x10 Nennung 10
Offene Texteingabe
[IN02] !Offene Nennungen
InfomationBottomUp
"Welche Vorteile könnte diese Veränderung für Sie persönlich mitbringen oder mitgebracht haben?"

IN02 Anzahl der Nennungen
Ganze Zahl
IN02x01 Nennung 1
IN02x02 Nennung 2
IN02x03 Nennung 3
IN02x04 Nennung 4
IN02x05 Nennung 5
IN02x06 Nennung 6
IN02x07 Nennung 7
IN02x08 Nennung 8
IN02x09 Nennung 9
IN02x10 Nennung 10
Offene Texteingabe


Debug von Seite 5 und 6:

Warnung (Seite 5)
Die Variable ZU01 wurde im Laufe dieses Interviews auf keiner vorhergehenden Seite abgefragt. Daher kann die Funktion value() keinen Antwort-Wert ermitteln.
Warnung (Seite 5)
Die Variable ZU01 wurde im Laufe dieses Interviews auf keiner vorhergehenden Seite abgefragt. Daher kann die Funktion value() keinen Antwort-Wert ermitteln.
Warnung (Seite 5)
Die Variable ZU01 wurde im Laufe dieses Interviews auf keiner vorhergehenden Seite abgefragt. Daher kann die Funktion value() keinen Antwort-Wert ermitteln.
Warnung (Seite 5)
Die Variable ZU01 wurde im Laufe dieses Interviews auf keiner vorhergehenden Seite abgefragt. Daher kann die Funktion value() keinen Antwort-Wert ermitteln.

Warnung (Seite 6)
Die Variable ZU01 wurde im Laufe dieses Interviews auf keiner vorhergehenden Seite abgefragt. Daher kann die Funktion value() keinen Antwort-Wert ermitteln.
Warnung (Seite 6)
Die Variable ZU01 wurde im Laufe dieses Interviews auf keiner vorhergehenden Seite abgefragt. Daher kann die Funktion value() keinen Antwort-Wert ermitteln.
Warnung (Seite 6)
Die Variable ZU01 wurde im Laufe dieses Interviews auf keiner vorhergehenden Seite abgefragt. Daher kann die Funktion value() keinen Antwort-Wert ermitteln.
Warnung (Seite 6)
Die Variable ZU01 wurde im Laufe dieses Interviews auf keiner vorhergehenden Seite abgefragt. Daher kann die Funktion value() keinen Antwort-Wert ermitteln.

Danke
0 votes
by SoSci Survey (308k points)
edited by SoSci Survey

Danke für die Variablen- und Debug-Informationen.

IN02 Anzahl der Nennungen

Hier kommt die "4" her ... offenbar haben Sie 4 Texte ausgefüllt. Sie möchten aber nun, wenn ich Sie korrekt verstehe, eine Komma-getrennte Liste der offenen Nenungen?

Dann ersetzen Sie bitte diese Zeile (entsprechend auch die drei anderen)...

replace('%ZieleUnternehmen%', 'IN01', 'response');

... wie folgt:

$antworten = valueList('IN01');
replace('%ZieleUnternehmen%', implode(', ', $antworten));

Falls Sie damit noch viele Kommata hintereinander bekommen, ändern Sie die erste Zeile bitte noch wie folgt:

$antworten = valueList('IN01', getItems('IN01', 'valid'));
replace('%ZieleUnternehmen%', implode(', ', $antworten));

Die Variable ZU01 wurde im Laufe dieses Interviews auf keiner vorhergehenden Seite abgefragt. Daher kann die Funktion value() keinen Antwort-Wert ermitteln.

Stellen Sie sicher, dass Sie das Interview (auch zum Testen) ab der Seite starten, wo Sie den Zufallsgenerator ZU01 platziert haben. Falls Sie den Zufallsgenerator noch nicht platziert haben: Er muss spätestens über dem PHP-Code stehen, wo value('ZU01') das erst mal verwendet wird.

Besonders schön wäre es, wenn die Liste der Nennungen nicht durch Kommata getrennt eingespielt wird, sondern die Nennungen untereinander aufgelistet anzeigt werden würde

$antworten = valueList('IN01', getItems('IN01', 'valid'));
foreach ($antworten as $i => $antwort) {
  $antworten[$i] = htmlspecialchars($antwort);
}
replace('%ZieleUnternehmen%', '<p>'.implode('<br>', $antworten).'</p>', 'html');
by s055756 (160 points)
Vielen Dank ! Nun funktioniert es.

Besonders schön wäre es, wenn die Liste der Nennungen nicht durch Kommata getrennt eingespielt wird, sondern die Nennungen untereinander aufgelistet anzeigt werden würde, haben Sie eine Idee in wie weit dies möglich ist?

Da es sich pro Nennung um Sätze handelt, wäre dies deutlich übersichtlicher, könnte man sogar ein 1.2.3. davor setzten?

Danke im Voraus :)
by SoSci Survey (308k points)
> Besonders schön wäre es, wenn die Liste der Nennungen nicht durch Kommata getrennt eingespielt wird, sondern die Nennungen untereinander aufgelistet anzeigt werden würde

Auch das ist möglich. Allerdings wird der Code dannn etwas länger, weil spitze Klammern in der Eingabe sonst zu Anzeigefehlern führen würden. Ich ergänze es gleich oben in meiner Antwort.
by s055756 (160 points)
Super Dankeschön!

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

...