0 votes
ago in SoSci Survey (dt.) by s376588 (110 points)

Meine letzte Seite soll den folgenden Inhalt haben:

Herzlichen Dank, %Vorname% %Nachname%. Sie haben sich mit %Email% für
unsere Interessent*innenliste angemeldet.

Eingetragen ins PhP Feld habe ich, der Doku folgend:

replace('%Vorname%', 'Vorname', 'response');
replace('%Nachname%', 'Nachname', 'response');
replace('%Email%', 'Email', 'response');    
$Vorname = value('Vorname');
$Nachname = value('Nachname');
$Email = value('Email');
replace('%Vorname%', $Vorname);
replace('%Nachname%', $Nachname);
replace('%Email%', $Email);

auf der Debug-Ansicht bekomme ich für alle drei Felder das gleiche:

Für den Platzhalter ... wurde weder ein Eingabefeld mit prepare_input() vorbereitet, noch ein Inhalt mit replace() festgelegt.

prepare_input wird nicht erläutert. Was tun?

1 Answer

0 votes
ago by SoSci Survey (373k points)

Die letzte Seite erlaubt keine Platzhalter, denn beim Erreichen der letzten Seite wird das Interview als "beendet" klassifiziert (FINISHED=1) und Hintergrunddaten wie z.B. Platzhalter werden entfernt.

Die Lösung für Ihren Anwendungsfall wäre demnach, dass Sie eine Pseudo-Letzte Seite einfügen, welche die Platzhalter enthält. Verwenden Sie auf der Seite

buttonHide();

sodass die Seite für die Befragten wie die letzte Seite aussieht. Mit setStatus('complete') können Sie auch die STATUS-Variable geeignet setzen - diese ist bei geeigneter Steuerung akkurater als die FINISHED Variable.

ago by s376588 (110 points)
danke für die schnelle Antwort. Ich habe
a) eine zweite Seite angelegt
b) auf der zweiten Seite ein php feld angelegt und dort eingetragen:

setStatus('complete');
buttonHide();

3. Habe den Text in einemTextfeld angelegt.
4. Habe das Textfeld vor den PhP-Code auf Seite eingefügt.
5. Den Text von der End-Seite entfernt.

Ich bekomme doppelte Warnungen. Darüber hinaus ist auf der neuen Seite 2 ein Feld aufgetaucht oder unabsichtlicht von mir hinzugefügt worden, welches den Titel "Verarbeitung der Antworten mittels PHP" heißt.

Was tun?
ago by SoSci Survey (373k points)
> Ich bekomme doppelte Warnungen.

Was für Warnungen sind das denn?

> Darüber hinaus ist auf der neuen Seite 2 ein Feld aufgetaucht oder unabsichtlicht von mir hinzugefügt worden, welches den Titel "Verarbeitung der Antworten mittels PHP" heißt.

Dieses Feld bekommen Sie, wenn Sie unten auf den gleichnamigen Knopf klicken. Sie können dieses Feld getrost ignorieren.

Wichtig ist, dass setStatus() und buttonHide() in einem regulären "PHP-Code" Feld stehen.
ago by s376588 (110 points)
ach so: der gleiche fehlercode.
ago by SoSci Survey (373k points)
(1) Haben Sie Ihre Variablen (ich vermute, es handelt sich um offene Texteingaben) denn mnuell in "Vorname" u.s.w. umbenannt? Wenn ja, dann reichen die ersten drei Zeilen Ihres PHP-Codes, die Zeilen 4-9 sind nur eine Wiederholung.

(2) Zeigt die Debug-Information an, dass die Platzhalter korrekt gesetzt werden auf der Seite mit dem replace()

(3) Falls die replace()-Befehle nicht auf derselben Seite stehen wie der Text mit den Platzhaltern, stellen sie sicher, dass Sie den Fragebogen bei der "Vornamen" etc. Frage starten und dass replace() aufgerufen wird bevor (!) der Text mit den Platzhaltern eingebunden wird.

(4) Posten Sie, falls das Problem nicht ohnehin schon gelöst ist, bitte die Debug-Information und die Fehlermeldung im Wortlaut.
ago by s376588 (110 points)
(1) Ja, ich habe die Variablen umbenannt. Auch nur mit dem Code der Zeilen 1-3 geht es freilich nicht.
(2) Nein, es wurde nicht umgesetzt,
(3) Beides: Textfeld wie php feld sind auf seite 2 (die fragen auf seite 1). Wie stelle ich das Aufrufen sicher? Ich habe das Textfeld vor dem Php sortiert, dann die debug-seite aufgerufen. selbes ergebnis.

(4) Wortlaut ist zwei Mal für jede der Variablen

Für den Platzhalter %Vorname% wurde weder ein Eingabefeld mit prepare_input() vorbereitet, noch ein Inhalt mit replace() festgelegt.

Darunter steht mein Text unverändert: Herzlichen Dank, %Vorname% %Nachname%. Sie haben sich mit %Email% für unsere Interessent*innenliste angemeldet.

Debug Informationen sind:

[Information]    Interview Nummer 16 wird fortgesetzt
[Information]    Der Fragebogen base im Projekt quadriga_mailings wird verwendet
[Information]    Die Verweildauer auf Seite 1 war 3 Sekunden
[Verarbeitung]    Lese Antworten von Seite 1
[Information]    Antwort auf A001_01 = er
[Information]    Antwort auf A002_01 = sad
[Information]    Antwort auf A003_01 = asdad
[Information]    Fragen bisher zu 100% vollständig beantwortet
[Verarbeitung]    Erstelle Seite 2 in Fragebogen base
[Inhalt]    Erstelle Frage A004
[Information]    Setze STATUS = complete
[Information]    Speicherbedarf RAM 0.7 MB (Seiteninhalt 0.1 MB)
ago by SoSci Survey (373k points)
> Ich habe das Textfeld vor dem Php sortiert

Der PHP-Code muss oberhalb des Textes stehen. Wichtig auch, dass es sich um ein Feld "PHP-Code" handelt.

Der Text hat die Kennung A004 ?

Die Debug-Information weist darauf hin, dass replace() gar nicht ausgeführt wird. Sonst müsste dort stehen:

Folgende Platzhalter sind vorbereitet:
%Vorname% = (Text) er

> Setze STATUS = complete

Das sieht so aus, dass Sie auf der Seite noch weiteren PHP-Code verwenden?
ago by s376588 (110 points)
ja, es ist php code feld. ja, text ist A004. es war falschherum: erst php code, dann text. however, auch andersherum führt zu gleichem Ergebnis.
nein, kein anderer php code.
ago by SoSci Survey (373k points)
Sie arbeiten nicht auf www.soscisurvey.de, korrekt? Welche Version zeigt SoSci Survey auf Ihrem Server denn links in der Navigation (ganz unten) an?
ago by s376588 (110 points)
nein, ich bin auf umfragenup (Uni Potsdam). Version ist: Programm-Version 3.8.04
ago by SoSci Survey (373k points)
Keine veraltete Version (wie ich zunächst befürchtet hatte). Wenn Sie möchten, dann kopieren Sie die Befragung testweise mal auf www.soscisurvey.de (https://www.soscisurvey.de/help/doku.php/de:general:copy-project) und gestatten sie mir (formlos hier per Nachricht), dass ich einen Administrator-Zugang zu dem Projekt erstelle. Dann würde ich mir das einmal direkt ansehen. Ich habe den Verdacht, dass wir an irgendeiner Stelle aneinander vorbeischreiben. Ein direkter Blick sollte das klären.
ago by s376588 (110 points)
sehr gern, Ich habe das Projekt zu Ihnen via XML-Ex- und Import angelegt. ID müsste 1169475 sein.
ago by SoSci Survey (373k points)
Danke. Auf Seite 2 des Fragebogens sehe ich nur folgenden PHP-Code:

setStatus('complete');
buttonHide();

Ein PHP-Code mit replace() ist dort nicht vorhanden. Ist da beim Export/Import etwas verloren gegangen? Wenn ja, posten Sie gerne mal den "Internen Code" (Kartreireiter beim "Fragebogen zusammenstellen") des ursprünglichen Fragebogens.
ago by s376588 (110 points)
tada, fehler gefunden. Ich hatte - in Unkenntnis des Systems - die Funktion ins "php-Funktionen"-Feld eingefügt. Jetzt da ich es direkt in das php-Feld der Seite 2 eingefügt habe, funktioniert ist.

danke für die Hilfe!
ago by SoSci Survey (373k points)
Danke für die Auflösung des Rätsels :)

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

...