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

Was muss ich tun, dass die Wörter, die im Freitext-Feld geschrieben werden, gezählt werden, so dass ich die Wortanzahl später mit in die Analyse aufnehmen kann?
Die Wörter sind nicht begrenzt.

Ich habe den HTML- Code kopiert, der unter "Wörter zählen" stand und die Kennung angepasst.
(https://www.soscisurvey.de/help/doku.php/de:create:questions:text#zeichen_zaehlen_begrenzen)

Seitdem wird mir unter dem Textfeld "Wörter" angezeigt, aber es wird nichts gezählt.

Bitte für Technikidioten erklären.

1 Answer

0 votes
by SoSci Survey (327k points)

Dieser Counter arbeitet im Browser mit JavaScript. Im Prinipz können Sie den Wert auch in eine interne Variable schreiben, aber folgender PHP-Code ist m.E. einfacher. Es käme auf die Seite nach dem Texteingabefeld. Ich nehme mal an, dass Ihr Eingabefeld TX01_01 heißt und dass Sie eine interne Variable IV01_01 angelegt haben für die Wortanzahl.

$text = value('TX01_01');
$count = preg_match_all('/\\w+/u', $text);
put('IV01_01', $count);

Oder wenn man es gerne komplizierter verschachteln will:

put('IV01_01', preg_match_all('/\w+/u', value('TX01_01')));

Die Funktion preg_match_all() sucht alle Treffer für "ein oder mehr Wort-Zeichen (also Buchstaben und/oder Zahlen)", als regulärer Ausdruck geschrieben als \w+. Beachten Sie bitte, dass einzelne Zeichen hier auch als Wörter gezählt werden. Falls Sie z.B. erst Wörter ab zwei Zeichen zählen wollen, wäre das Pattern /\\w{2,}/u statt /\\w+/u.

Das "u" steht übrigens für Unicode und sorgt dafür, dass z.B. auch Umlaute als Bestandteil von Wörtern erkannt werden. So, Sie können jetzt Regex und sind damit offiziell kein Technikidiot mehr.

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

...