0 votes
in SoSci Survey (dt.) by s237443 (160 points)
edited by s237443

Die Zeichenzahl ist bereits auf 300-500 beschränkt, jedoch soll den Proband*innen ihre aktuelle Zeichenzahl angezeigt werden, was ich nicht hinbekomme.

Ich habe den Code von soscisurvey, den man hier findet: https://www.soscisurvey.de/help/doku.php/de:create:questions:text genutzt, aber leider funktioniert es nicht. Die Angabe bleibt bei Aktuell haben Sie - Zeichen.

Den PHP Code habe ich unterhalb des Textfeldes bei "Fragebogen zusammenstellen" eingefügt. Auch die Kennung des Texteingabefelds müsste richtig sein, die Fragebogenkennung ist BB04 und das Textfeld selbst 01, also habe ich statt 'AB01_01' überall 'BB04_01' eingefügt. Ich komme leider seit Stunden nicht weiter, obwohl das so simpel erscheint. Weiß vielleicht jemand, woran es liegen könnte? Ich wäre so dankbar :)`

    <!-- Seite 12 -->
<page intID="49">
<question id="TE02" intID="54" />
<question id="TE03" intID="47" />
<question id="BB04" intID="50" />
<php intID="52"><![CDATA[
text('jsCountChars', array(
  '%text%' => 'BB04_01',  // Hier die Kennung des Texteingabefelds eintragen
  '%display%' => 'BB04_01chars',  // Hier die Kennung des HTML-Elements zur Anzeige der Zeichen
  '%limit%' => 500  // Hier ggf. die Anzahl erlaubter Zeichen, sonst 0
));
]]></php>
<question id="BB05" intID="51" />
</page>

HTML Code bei Textbausteine mit der Kennung "jsCountChars" und Darstellung "HTML Code"

 <script type="text/javascript">
<!--
 
function addCounter(textID, displayID, limit) {
  if (limit) {
    limit = parseInt(limit);
  }
  var input = document.getElementById(textID);
  if (!input) {
    alert("Kein Texteingabefeld mit der Kennung " + textID + " gefunden");
    return;
  }
  var display = document.getElementById(displayID);
  if (!display) {
    alert("Kein Element mit der Kennung " + displayID + " gefunden");
    return;
  }
  // Funktion zum Zählen und Anzeigen des Wertes
  function refresh() {
    var s = input.value.replace(/\r\n/g, "\r").replace(/\r/g, "\n");
    var res = s.length;
    if (limit) {
      res = limit - res;
    }
    // Inhalt des Anzeigeelements löschen
    while (display.lastChild) {
      display.removeChild(display.lastChild);
    }
    // Text zum Anzeigen
    var cnt = document.createTextNode(res);
    display.appendChild(cnt);
  }
  // Länge ggf. begrenzen
  if (limit) {
    SoSciTools.checkChars(textID, "", limit);
  }
  // Bei jeder Änderung des Textfelds aktualisieren
  SoSciTools.attachEvent(input, ["change","keyup"], refresh);
  // Beim Laden aktualisieren
  refresh();
}
 
// Textfeld registrieren
addCounter("%text%", "%display%", "%limit%");
 
// -->
</script>

Referenz in der Anweisung zu dem Texteingabefeld:
You currently have <span id=“BB04_01chars”>-</span> characters.

1 Answer

+1 vote
by SoSci Survey (320k points)
selected by s237443
 
Best answer
You currently have <span id=“BB04_01chars”>-</span> characters

Sie haben hier keine geraden Anführungszeichen, sondern typografische - das passiert üblicherweise, wenn man den Text zwischendurch nach Word kopiert und dort bearbeitet. Word weiß besser, was gut für Sie ist ... aber technische funktionieren die typografischen Anführungszeiten im HTML-Code eben nicht mehr.

Wenn es nicht (alleine) daran liegt, posten Sie bitte einen Pretest-Link direkt (!) zur betroffenen Seite, sodass ich einen Blick in die JavaScript Fehlerkonsole werfen kann.

by s237443 (160 points)
Danke, das war wohl nicht das Problem, ist bei sosci survey selbst auch so angegeben. Es hat aber auf einmal funktioniert, ich weiß nur nicht warum :D
by SoSci Survey (320k points)
Ich habe die Anleitung nochmal geprüft, und dort sind im entsprechenden Code-Abschnitt alle Anführungszeichen gerade. Zum Vergleich nochmal: falsch (“) und richtig (").

Wenn es nun funktioniert, umso besser.

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

...