Ich habe eine Variable mit Stimulustext $text
. An diesen Text soll ein Platzhalter hinten angefügt werden: $text = $text."%belief%";
Der Platzhalter belief wird mit Textelementen gefüllt über getTextElement().
Die Variable $text
wird noch mehrmals bearbeitet mit str_replace()
, z. B. $text = str_replace("%pronoun%", $pronoun, $text);
Am Ende wird der Stimulustext per Platzhalter in ein HTML-Textelement eingefügt und angezeigt: replace("%text%", $text);
<center>
<div style="border: 1px solid lightgrey; padding: 20px; margin = 20px; display: flex; align-items: center; justify-content: center; flex-direction: column; text-align: center;">
<p style="margin: 0;">%text%</p>
</div>
</center>
Im Fragebogen wird dann dieser Text im Debug-Modus gezeigt:
"Dies ist der Stimulustext. Der wird korrekt angezeigt.
`<div class="SoSciDebug question"> <div class="container"> <div class="ballot"></div> <div class="box"> <div class="label">BF02</div> <div class="desc">bad_subj_inc</div> <div id="notes_BF02" class="box notes shadow empty" contentEditable="true"> </div> </div> </div> <!-- TODO: Variables per question (debug only) --> </div> <div class="items s2readable"> <p>`
Dies ist der Text, der über den Platzhalter am Ende eingefügt wurde. Auch der ist in Ordnung."
Ohne Debug-Modus wird statt dem langen HTML-Teil in der Mitte das hier gezeigt:
<div class="items s2readable"> <p>
Was passiert da in der Mitte? Wieso wird HTML-Code eingefügt? Habe ich irgendwo einen Fehler im Code, sodass hier HTML-Klammern offen bleiben und als Text angezeigt werden?