0 votes
in SoSci Survey (dt.) by s033867 (150 points)

Ich generiere einen Platzhalter im PHP Code, den ich für eine Berechnung verwenden möchte. Im Prinzip möchte ich also %abc% umwandeln in $abc.

Das funktioniert allerdings nicht, auch nicht über den Umweg den Platzhalter als interne Variable zu speichern.

1 Answer

0 votes
by SoSci Survey (327k points)

An welcher Stelle definieren Sie den Platzhalter denn? Sort sollten Sie den Wert eigentlich direkt als Variable verfügbar haben - die können Sie dann entweder mit registerVariable() längerfristig verfügbar machen oder mittels put() in eine interne Variable speichern.

by s033867 (150 points)
Code:

if ((value('RD15') == 1) and (value('CC01') == 1)) {
replace('%Outcome%', 'LA01_01', 'response');
}
if ((value('RD15') == 1) and (value('CC01') == 2)) {
replace('%Outcome%', 'LA16_01', 'response');
}
if ((value('RD15') == 2) and (value('CC01') == 1)) {
replace('%Outcome%', 'LA01_02', 'response');
}
if ((value('RD15') == 2) and (value('CC01') == 2)) {
replace('%Outcome%', 'LA16_02', 'response');
}

Erläuterung:
RD15 ist eine Zufallsziehung, CC01 eine Entscheidung der Teilnehmer auf einer vorherigen Seite des Fragebogens
Beides zusammen determiniert ein Ergebnis, das in der internen Variablen LA01 gespeichert ist
%Outcome% ruft dieses Ergebnis als Platzhalter ab und wird im Fragebogen als Text angezeigt: " Ihr Ergebnis ist %Outcome%

Ich möchte nun mit dem Wert weiter rechnen, $total = $outcome + $outcome2 ..., aber mir gelingt es nicht %Outcome% in $outcome zu überführen

Weder durch $outcome = value('%Outcome%') oder Ähnliches noch über den Umweg einer internen Variablen.

Z.B. put('XX_01', 'LA01_01', 'response') im Code oben funktioniert nicht, da Sosci dann "LA01_01" in die XX_01 variable schreibt und nicht den Wert
by SoSci Survey (327k points)
Sie können den Wert mittels value() abrufen, also z.B.

if ((value('RD15') == 1) and (value('CC01') == 1)) {
  replace('%Outcome%', 'LA01_01', 'response');
  $wert = value('LA01_01');
}

Dann haben Sie die Information erstmal in der PHP-Variable $wert. Ob Sie diese dann noch in eine separate interne Variable legen oder mittels registerVariable($wert) für spätere Codes verfügbar machen, das ist Ihnen überlassen. Brauchen Sie den Wert in der Auswertung? Dann legen Sie ihn in eine intere Variable, das spart Ihnen Zeit.
by s033867 (150 points)
Das hat funktioniert. Danke!

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

...