0 votes
in SoSci Survey (dt.) by s079684 (1.0k points)

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?

1 Answer

+1 vote
by SoSci Survey (328k points)
selected by s079684
 
Best answer

Am Ende wird der Stimulustext per Platzhalter in ein HTML-Textelement eingefügt und angezeigt: replace("%text%", $text);

Teilen Sie dem Befehl replace() bitte mit, dass es sich hier nicht um blanken Text handelt, sondern um HTML-Code:

replace("%text%", $text, 'html');

Bitte beachten Sie auch, dass das Verschachteln von Platzhaltern in aller Regel nicht funktioniert:

$text = $text."%belief%";

Nur über den von Ihnen schon angesprochenen Weg, also

$text = str_replace("%pronoun%", $pronoun, $text);

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

...