0 votes
in SoSci Survey (dt.) by s077198 (125 points)

Ich habe eine Umfrage erstellt, die zwischendurch an einen externen Link weiterleitet und dann mit POST/GET Parametern (inkl. caseToken) zurückleitet. Ich speichere verschiedenste Parameter (t3, t6, f10, lip) nach der Unterbrechung mittels folgendem Code und möchte sie später an den Partizipanten zurückspielen.

if (!isset($t3)) {
$t3 = readGET('t3');
put('IV03_09', $t3);
replace('%top3%', $t3);
}
if (!isset($t6)) {
$t6 = readGET('t6');
put('IV03_10', $t6);
replace('%top6%', $t6);
}
if (!isset($f10)) {
$f10 = readGET('f10');
put('IV03_11', $f10);
replace('%flop10%', $f10);
}
if (!isset($lip)) {
$lip = readGET('lip');
put('IV03_12', $lip);
replace('%lips%', $lip);
}

Wenn ich nun aber auf der späteren Seite die placeholder ausgeben möchte, erscheint die Errormeldung "For the placeholder %top3% neither an input field by prepare_input() has been created nor any content by using replace()."

Der PHP-Code zum anzeigen dieser placeholder ist wie folgt:

html('<h1>Your selection results</h1>');  
$html = 'Selected top 3 ideas: %top3%';
html($html);

Da der 2. Code eigentlich nur html ist, habe ich den code auch schon mal in reinen html-code umgewandelt.

Wie kann ich die internen Variablen sonst aufrufen und ausgeben? Oder sind die für sowas nicht gemacht?
Kann ich auch Externe Daten-"Fragen" verwenden, um nach einer Unterbrechung erneut Daten zu speichern? Bisher hat das nicht funktioniert.
Und spielt es eine Rolle, dass ich die Befragung zwischendurch mal testweise gestartet habe? Sollte ich ggf. alle Daten einmal löschen?

Danke vielmals!

1 Answer

0 votes
by SoSci Survey (329k points)
selected by s077198
 
Best answer

Zum Einlesen der Werte würde ich dringend deine Frage vom Typ "Gerät und übermittelte Variablen" empfehlen - damit sparen Sie sich das ganze isset() und registerVariable().

Wenn ich nun aber auf der späteren Seite die placeholder ausgeben möchte, erscheint die Errormeldung

Das spricht dafür, dass das replace() nicht ausgefühtr wird. Weshalb, das kann ich Ihnen ohne weiteres nicht sagen.

Wie kann ich die internen Variablen sonst aufrufen und ausgeben? Oder sind die für sowas nicht gemacht?

Einfach über value().

html('
  <h1>Your selection results</h1>
  <p>Selected top 3 ideas: '.htmlspecialchars(value('IV01_01')).'</p>'
);
by s077198 (125 points)
Ich habe nun POST/GET Werte über die Frage vom Typ "Gerät und übermittelte Variablen" eingelesen. Die Werte die ich wieder ausgeben möchte sind nun als ED03_RV1 bis ED03_RV4 gespeichert und lasse es z.B. so anzeigen:

html('
  <h1>Your selection results</h1>
  <p>Selected top 3 ideas: '.htmlspecialchars(value('ED03_RV1')).'</p>'
);

Es folgt dann aber diese Errormeldung:

The variable ED03_RV1 has not been asked on a previous page during this interview. Therefore value() cannot determine any answer, yet.

Wenn ich im Test Modus bzw. im Modus "Fragebogen zusammenstellen" bin, sollte doch einfach nichts als value angezeigt werden, sofern der Code korrekt ist. Oder?
by s077198 (125 points)
Es scheint als würde es nur gehen, wenn tatsächlich der ganze Pretest durchgeführt wird, weil sonst keine Daten zum "zurückspielen" vorhanden sind.

Danke, jetzt passt alles!

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

...